Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php document.referer检查恶意代码_Php_Security_Verify_Referer - Fatal编程技术网

Php document.referer检查恶意代码

Php document.referer检查恶意代码,php,security,verify,referer,Php,Security,Verify,Referer,我想分配一个变量,与传递document.referer值的表单一起提交。我使用的是下面的工作原理。但是,我担心有人会修改document.referer以插入恶意php代码 在使用document.referer之前,如何首先检查它是否是一个网址而不是其他代码 <script type="text/javascript" charset="utf-8"> window.onload = function() { document.getElementById("prevurl")

我想分配一个变量,与传递document.referer值的表单一起提交。我使用的是下面的工作原理。但是,我担心有人会修改document.referer以插入恶意php代码

在使用document.referer之前,如何首先检查它是否是一个网址而不是其他代码

<script type="text/javascript" charset="utf-8">

window.onload = function() {
document.getElementById("prevurl").value=document.referrer;
}

</script>

<input id="prevurl" name="prevurl" type="hidden"></input>

window.onload=函数(){
document.getElementById(“prevurl”).value=document.referer;
}

在客户端上进行验证没有意义(至少在安全方面,在许多情况下,它当然可以是一个很好的UX/可用性功能)。您为referer实现的任何检查(无论现在是否有意义),攻击者都可以从javascript中删除该检查,或者直接为表单变量发布任何值。验证需要在服务器端进行

在服务器上,接收任何输入(包括一个碰巧是有效php的字符串或任何其他经过计算的字符串)都是安全的。你用它做什么可能是个问题。您必须小心并记住,来自请求的任何内容都是用户输入,恶意用户可能发送了任何内容。显然,您不想将其作为php进行eval(),不想在不考虑SQL注入的情况下在SQL查询中使用它,不想将其写回未编码的页面(这将是XSS的一种形式),不希望访问控制决策直接基于用户输入,等等


但是只有接收(甚至存储)它才可以。

我明白了。谢谢你的解释。