【发布时间】:2011-07-17 01:59:16
【问题描述】:
场景:
我想用&quot; &#039; &lt; &gt; 替换:" ' < > 但保留“&”字符。
我正在处理的字符串是一个 URL,我希望 URL 参数由 &amp; 分隔,而不是 &amp;。
示例解决方案:
$url = "/some/path?a=123&b=456"; // from $_SERVER["REQUEST_URI"];
$url = htmlspecialchars($url, ENT_QUOTES, 'ISO-8859-1', true);
$url = str_replace('&','&',$url);
问题:
如果我在我的页面上使用$url(例如,在 HTML 或 JavaScript 中使用echo $url;),这会被 XSS 利用吗?
类似问题:
还有其他关于 SO 的帖子 XSS &
htmlspecialchars()但我不能 围绕“&”是否找到答案 字符(以及它可能的 htmlentities allow) 可以将您暴露给 XSS。
【问题讨论】:
-
URL是从用户数据中获取的吗?
-
在我的例子中,URL 取自 $_SERVER["REQUEST_URI"]; ...基本上是在浏览器地址栏中输入的任何内容。
标签: php javascript xss htmlspecialchars