脚本宝典收集整理的这篇文章主要介绍了php – 如何为检查请求源提供更多安全性,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
关于我的问题的简要说明:
在一个模块中有一个阶段,我正在检查请求的来源(来自此请求的来源)
目前,我正在使用HTTP_REFERRER变量(在PHP中可用).我正在使用一个特定的URL(例如http://www.example.com/test.php)检查此变量值.如果存在完全匹配,则只有我调用进一步的操作.
我对上面的方法感到有点困惑,我是否应该使用HTTP_REFERRER或检查IP地址(有效请求是否来自任何特定的IP地址)?
有人有想法然后请分享?
提前致谢
检查源的一个可能的解决方案是使用表单令牌(csrf保护):http://www.thespanner.co.uk/2007/04/12/one-time-form-tokens/但也不安全,并且只能使用您自己的源.
一个简单的CSRF(跨站点请求伪造)保护示例:(因此很简单.对于更安全/更健壮的解决方案,请参阅The Rook的答案)
1)在您的表单页面中,创建某种令牌并将其放入您的会话和隐藏表单字段中:
<?PHP session_start(); $csrfToken = md5(uniqid(mt_rand(),true)); // Token generation updated,as suggested by The Rook. Thanks! $_SESSION['csrfToken'] = $token; ?> <form action="formHandler.PHP"> <input tyPE="hidden" name="csrfKey" value="<?PHP echo $csrfToken ?>" /> </form>
2)在表单处理程序中检查令牌是否有效.
<?PHP session_start(); if($_POST['csrfKey'] != $_SESSION['csrfKey']) { die("Unauthorized source!"); } ?>
以上是脚本宝典为你收集整理的php – 如何为检查请求源提供更多安全性全部内容,希望文章能够帮你解决php – 如何为检查请求源提供更多安全性所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。