# NAME

Amon2::Plugin::Web::CSRFDefender - Anti CSRF filter

# SYNOPSIS

   package MyApp::Web;
   use Amon2::Web;

   __PACKAGE__->load_plugin('Web::CSRFDefender');

# DESCRIPTION

This plugin denies CSRF request.

Do not use this with [HTTP::Session2](https://metacpan.org/pod/HTTP::Session2). Because [HTTP::Session2](https://metacpan.org/pod/HTTP::Session2) has XSRF token management function by itself.

# METHODS

- $c->get\_csrf\_defender\_token()

   Get a CSRF defender token. This method is useful to add token for AJAX request.

- $c->validate\_csrf()

   You can validate CSRF token manually.

# PARAMETERS

- no\_validate\_hook

   Do not run validation automatically.

- no\_html\_filter

   Disable HTML rewriting filter. By default, CSRFDefender inserts XSRF token for each form element.

   It's very useful but it hits performance issue if your site is very high traffic.

- csrf\_token\_generator

   You can change the csrf token generation algorithm.

# LICENSE

Copyright (C) Tokuhiro Matsuno.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

# AUTHOR

Tokuhiro Matsuno <[email protected]>

# THANKS TO

Kazuho Oku and mala for security advice.

# SEE ALSO

[Amon2](https://metacpan.org/pod/Amon2)