Php document.referer检查恶意代码
我想分配一个变量,与传递document.referer值的表单一起提交。我使用的是下面的工作原理。但是,我担心有人会修改document.referer以插入恶意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")
<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的一种形式),不希望访问控制决策直接基于用户输入,等等
但是只有接收(甚至存储)它才可以。我明白了。谢谢你的解释。