owasp / csrf-protector-php
CSRF protector php, a standalone php library for csrf mitigation in web applications. Easy to integrate in any php web app.
Installs: 317 558
Dependents: 3
Suggesters: 0
Security: 0
Stars: 213
Watchers: 15
Forks: 87
Open Issues: 41
pkg:composer/owasp/csrf-protector-php
Requires (Dev)
- satooshi/php-coveralls: ~1.0
This package is auto-updated.
Last update: 2025-10-15 20:13:25 UTC
README
CSRF protector php, a standalone php library for csrf mitigation in web applications. Easy to integrate in any php web app.
Add to your project using packagist
Add a composer.json file to your project directory
{
   "require": {
       "owasp/csrf-protector-php": "dev-master"
   }
}
Then open terminal (or command prompt), move to project directory and run
composer install
## Or alternatively
php composer.phar install
This will add CSRFP (library will be downloaded at ./vendor/owasp/csrf-protector-php) to your project directory. View packagist.libfun.net for more help with composer!
Configuration
For composer installations: Copy the config.sample.php file into your root folder at config/csrf_config.php
For non-composer installations: Copy the libs/csrf/config.sample.php file into libs/csrf/config.php
Edit config accordingly. See Detailed Information link below.
Link to wiki - Editing Configurations & Mandatory requirements before using this library
How to use
<?php include_once __DIR__ .'/vendor/owasp/csrf-protector-php/libs/csrf/csrfprotector.php'; // Initialise CSRFProtector library csrfProtector::init();
simply include the library and call the init() function!
More information
Discussions
Join Discussions at Google Group \ OWASP \ CSRF Protector
For any other queries contact me at: minhazav@gamil.com | minhaz@owasp.org
How to contribute?
General steps
- Fork the repo
- Create your branch
- Commit your changes
- Create a pull request
More?
Well, there are various ways to contribute to this project. Find a few of them listed below:
- Found a bug? Raise a bug in the issue page. Please make sure it's not a duplicate of an existing issue.
- Have a feature request? Raise one at the issue page. As mentioned above please do a basic check if this enhancementexists in the mentioned link.
- Want to contribute code to this project?
- The best way to start is by picking up one of the existing issues with Up For Grablabel.
- Leave a comment, that you intend to help on this > then fork > and then send a pull request to master branch.
 
- The best way to start is by picking up one of the existing issues with 
FAQ:
- What happens if token expires? - https://github.com/mebjas/CSRF-Protector-PHP/wiki/what-if-token-expires
- Secure flag in a cookie? - #54
- [Deprecated] NoJS support? - https://github.com/mebjas/CSRF-Protector-PHP/tree/nojs-support