我有这个字符串($ str),我试图阻止Javascript执行:
<script> ... </script>
<link onload="...">
<div onmouseover="...">
我应用这些命令:
$find = Array("script", "onload", "onmouseover");
$rep = Array("noscript", "no_onload", "no_onmouseover");
$new = str_replace($find, $rep, $str);
工作示例:http://codepad.org/kwuQvRiM
我知道还有其他事件属性,但为了缩短问题,我只选择了3个元素/属性,但是。
如果我允许用户填充$str
而不是在PHP源代码中声明它(例如$str = $_GET["str"]
),那么用户可以更改$str
代码可以某种方式利用此保护吗?
想象一下,$new
存储在数据库中并在以后使用,我想知道该字符串是否可以安全地执行javascript。
N.B。我知道有更安全的方法来执行这项任务,但这个问题是一个教学研究,我需要以这种方式执行