【问题标题】:document.referrer check for malicious codedocument.referrer 检查恶意代码
【发布时间】:2017-02-10 08:56:02
【问题描述】:

我想分配一个变量以与传递 document.referrer 值的表单一起提交。我正在使用以下有效的方法。但是,我担心有人会修改他们的 document.referrer 以插入恶意 php 代码。

如何在使用之前先检查 document.referrer 是一个网址而不是其他代码?

<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>

【问题讨论】:

    标签: php security verify referer


    【解决方案1】:

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

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

    但只有接收(甚至存储)它好的。

    【讨论】:

    • 我明白了。谢谢你的解释。
    猜你喜欢
    • 2017-02-12
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2019-02-01
    • 2016-02-16
    • 1970-01-01
    相关资源
    最近更新 更多