¿Por qué considero que Haskell es una buena opción para la seguridad del software?







Typeable . Haskell, , – ? «», , , , Haskell – - – , . , Typeable , , .







, , , , . , , . .







, . « » « ».







                ,  
                          
        ↓                                  ↓
        ┠───────────╂───────────╂──────────┨
             ↑            ↑          ↑
         
          
      
      





. , , , . « », 2000- - . « ?». , 2009-2010 , , , « » . , « ». .







, . . . , – , . , , , , .







, , . , .







. ? – , ../../../etc/nginx/nginx.conf



, ../../../etc/passwd/



, , .







. , - , , , .









, . ? , , ?







. , , Haskell, C# Java, , , . . , , , (path traversal), - .







Haskell –



, Haskell . -, Haskell , , , . -, Haskell , , , PHP:







// From imaginary CSRF token protection:
if ($tokenHash == $hashFromInternet->{'tokenHash'}) {
  echo "200 OK - Request accepted", PHP_EOL;
}
else {
 echo "403 DENIED - Bad CSRF token", PHP_EOL;
};
      
      





, ? , PHP, «» JSON . , - «» , , . , PHP , ==



, , .







Java ( , . https://frohoff.github.io/appseccali-marshalling-pickles/). Java . , ! , – – , .







, PHP Haskell, Haskell . Haskell, :







data Request = Request {csrfToken :: Token, ... other fields}
doSomething :: Session -> Request -> Handler ()
doSomething session request
  | csrfToken session == csrfToken request = ... do something
  | otherwise = throwM BadCsrfTokenError
      
      





– , .







Haskell –



«» «» , Haskell , , , .







, Haskell , C, Javascript Java. -. , . , .







. , , , , , , :







data SSN = Unknown | Redacted | SSN Text
      
      





""



, "<REDACTED>"



"191091C211A"



. , "<REDACTED>" SSN? ? Haskell .







. –







storeFileUpload :: Path Abs File -> ByteString -> IO ()
storeFileUpload path = ...
      
      





, , , . , , . , , , HTML, .







, , , Haskell . , Haskell , .







Haskell



, . . . , , . .







Haskell , Haskell . Haskell , . Haskell, , . , , Haskell, - , , .







. Haskell , , Haskell , Javascript Python.









, Haskell , , . , , , . , , Haskell. , , , Haskell .








All Articles