我编写了一个小型PHP脚本,从URL中获取一个变量并将其回显在主体ID中。
网址的一个例子:
http://www.example.com/?var=123
我在HTML页面的标题中添加了以下内容:
HTML页面的body标记如下所示:
>
当将?var=123添加到URL中时,结果是这样的body标记:
这是可行的,但我相信有更好的办法去做。
发布于 2018-08-24 01:53:59
来说是非常脆弱的
Always清理用户输入,不要输出用户输入而不转义
您的代码将执行用户可以传递的任意HTML、CSS和JavaScript。试试这个简单的例子:
?var=">alert("How's that?")
新版本的Chrome和Safari将阻止JavaScript插入,但这在最新的火狐中仍然有效。
您可以使用像htmlspecialchars
或htmlentities
这样的函数来转义用户输入。了解更多信息:如何用HTML/PHP?。
或者,您可以创建一个可能的ids的白列表,并根据此列表检查输入:
$ids = ['value-a', 'value-b'];
$id = in_array($_GET['val'], $ids) ? $_GET['val'] : null;
https://codereview.stackexchange.com/questions/202329
复制