![](http://2.bp.blogspot.com/_JJhUUN0dCKE/SdXfTbkleBI/AAAAAAAAAF4/mvTT8oxZdmw/s320/esapi1.jpg)
The use of the ESAPI will also make it much easier for static analysis tools to verify an application, by building ESAPI calls into static analysis tool rulesets.
![](http://2.bp.blogspot.com/_JJhUUN0dCKE/SdXeIbONUiI/AAAAAAAAAFw/Sdxupqe05R8/s320/esapi.jpg)
It has been deveoped for various technologies like .NET, Java,PHP etc... Some are still good way from completion. The main idea behind the implementation of ESAPI is it gives you flexibility to use it against any language without caring about how they are receiving input and how they are filtreing it. Just use a method like ESAPI.endoeForHTML(input) and it will encode all the inputs taken by the application. The main difference between a normal encoding function and ESAPI encoding function is that the ESAPI functions are very well researched and carefully implemented .
For example,
methods for Authenticating a users are:
createUser(accountName, pass1, pass2)
generateStrongPassword()
getCurrentUser()
login(request, response)
logout()
verifyAccountNameStrength(acctName)
verifyPasswordStrength(newPass, oldPass)
generateStrongPassword()
getCurrentUser()
login(request, response)
logout()
verifyAccountNameStrength(acctName)
verifyPasswordStrength(newPass, oldPass)
Handling UesrAuthentication:
![](http://3.bp.blogspot.com/_JJhUUN0dCKE/SdXgI2UEioI/AAAAAAAAAGA/akjTY-J9d8U/s320/esapi2.jpg)
So,
Wrap your existing libraries and services
Extend and customize your ESAPI implementation
Fill in gaps with the reference implementation
Wrap your existing libraries and services
Extend and customize your ESAPI implementation
Fill in gaps with the reference implementation
Reference:
Comments