1) $login_id = user login id (converted to a numeric id using mysql)
2) $a_secret_key = $_SERVER['UNIQUE_ID'];
3) $remote_addr = $_SERVER['REMOTE_ADDR'];
4) Request Date and Time -> A unique reference key -> $refkey
5) $_SESSION['secretkey'] = $_SERVER['UNIQUE_ID'];
7条答案
按热度按时间tkqqtvp11#
.php
)的框架,在顶部添加:ASP.NET
内置表单使用动态输入csrf(示例值:gtlkjh29f9ewduh024cfvefb
)WordPress
内置表单使用动态输入nonce(示例值:340297658942346
)因此,如果您使用的是自定义平台,而该平台没有内置的临时令牌验证方法,那么请实现您的方法。
提交时,请检查:
91zkwejq2#
您正在尝试阻止CSRF - Cross-Site Request Forgery。Jeff himself有一篇关于此问题的博客文章。
真正的XSRF防护需要三个部分:
0yg35tkg3#
$_SERVER ['HTTP_Referrer']很不错,但不可靠。你可以使用MD5的隐藏表单字段,然后在另一边检查它。
djmepvbi4#
其形式为:
检查时:
tsm1rwdh5#
如果您正在寻找一种快速而又简单的方法,可以检查REFERER头。
如果你真的想确保表单是从你的站点获取的,你应该在每次表单加载时生成一个令牌,并将其附加到会话中。一个简单的方法是:
那么您的表单可以有一个隐藏输入:
并且您可以在决定是否处理表单数据时进行检查。
tnkciper6#
每个用户都注册,然后获得一个登录ID。
以下是防止CSRF的算法:-
将数据传输到另一个页面时,将上述1到4组合起来创建一个json文件。
然后
在接收机端:-
接收器页面应检查
vktxenjb7#
得分最高的答案中有一处打字错误。它应该是$_SERVER [“HTTP_REFER '],而不是$_SERVER [”HTTP_REFERRER']。