我有一个删除链接来按ID删除Comment对象 /comment/:id/delete
为了保护这个链接,我在链接中添加了一个csrf标记
$CSRFTokenForm = new BaseForm();
$link = url_for(..., array('_csrf_token' => $CSRFTokenForm->getCSRFToken()));
Run Code Online (Sandbox Code Playgroud)
并且在executeDelete中我使用该checkCSRFProtection()方法,一切正常.
唯一的一点是每个评论都是由部分显示的,每个部分创建它自己BaseForm()以创建令牌,这是浪费时间,因为它们都是相同的.
您是否更好地了解如何提高效率,例如静态getCSRFToken()方法或创建全局BaseForm()?
使用SF的方法=>删除.它为您创建CSRF令牌:
<?php
echo link_to('comment/' . $comment->getId() . '/delete',
array(
'method' => 'delete',
'confirm' => 'Do you really want to delete the comment??',
'title' => 'Delete'
)
);
?>
Run Code Online (Sandbox Code Playgroud)