【发布时间】:2013-02-07 00:09:47
【问题描述】:
我正在考虑 XSS 漏洞!
我有一个网站,所有的 b/w 网络服务器和客户端数据都通过 XHR 传输 - JSON 和浏览器 javascript 完成其余的工作以显示该网站。
当客户端提交数据时,这是我在数据记录到数据库(PHP)之前的代码:
$string = trim($_POST['user_input']);
$string = strip_tags($string);
$string = mysql_real_escape_string($string);
当服务器从数据库中获取数据时 PHP 代码如下:
$string = htmlspecialchars($db_value);
然后
header('Content-Type: application/json; charset=utf-8');
print json_encode($string);
这足以保护我免受 XSS 攻击吗?
【问题讨论】:
-
如果您发送的是普通的 XMLHttpRequest,除非您实际将从 AJAX 加载的响应内容放置在任何地方,否则您不会出现 XSS。你在哪里/如何向用户展示它?
-
顺便提一下,您可以将所有这些功能放在一行代码中。 $string = trim(htmlspecialchars(strip_tags($_POST['string'])));
-
@Brad 谢谢队友,我知道,但在问题中我把它们分开写只是为了更容易阅读。
-
JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT) 选项用于转义 IE 的 HTML 特殊字符和 header("X-Content-Type-Options: nosniff")。
-
您的意思是说您关注 XSS 漏洞。
标签: php javascript json xss