标签: silverstripe
我想在我的Silverstripe上为特定IP禁用CSRF安全令牌。
CSRF
我知道特殊形式可以通过
$form = new Form(..); $form->disableSecurityToken();
但我想在网站上做到这一点。
我在另一台计算机上托管了另一个网站,该网站使用XSLT和ajax进行了avers调用silverstripe登录。所以我想为这个特定的IP禁用站点CSRF。
XSLT
ajax
任何人都可以帮我吗? 感谢
答案 0 :(得分:5)
您可以查看$_SERVER以获取远程IP:
$ip = '192.168.1.99'; if ($_SERVER['REMOTE_ADDR'] == $ip) { $form->disableSecurityToken(); }
如果ajax调用由其他服务器发出,如果浏览器发出IP总是不同的话,这可能会有效。
编辑:
如果要全局禁用安全令牌,可以使用
SecurityToken::disable();
或使用返回false的魔术方法Extension将Controller类插入securityTokenEnabled()。当然,特殊的控制器子类可以覆盖它。请参阅source。
Extension
Controller
securityTokenEnabled()