0

我有这个字符串 ($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 执行。

注意我知道有更安全的方法来执行这项任务,但这个问题是针对教学研究的,我需要以这种方式执行

4

0 回答 0