在页面中包含评论表格。 有了评论,我想写一个发布评论的mysql网址。
发布的对php文件的评论将与jquery一起发送,如$.post("_record_comments.php", data_to_send_ajax_post, function(result_of_record) {
要php文件想要发送当前url(url的一部分)
可以像这样创建jquery变量
var url = '<?php echo htmlspecialchars( $_SERVER['PHP_SELF'] , ENT_QUOTES, "UTF-8"); ?>'
或
var url = '<?php echo htmlspecialchars( $_SERVER['QUERY_STRING'] , ENT_QUOTES, "UTF-8"); ?>'
但据我所知,任何人都可以设置var url
任何值,例如var url = 'wrong-url.html'
。在这种情况下,我会将不正确的URL发送到php文件。
如何阻止用户更改var url
的值并发送到当前页面的php正确网址?
答案 0 :(得分:1)
为了防止随机脚本与您的脚本交互,请在您自己的范围内运行所有代码:
(function () {
var url = "";
}());
现在url
无法通过可能在全局范围内运行的任何其他内容访问。
请注意,这可以防止更改url
变量,但仍然有很多方法可以让客户自己开枪并发送错误的请求,但他们为什么?如果存在安全问题,请确保首先在服务器上实现它们。
也许这值得一提:JavaScript安全模型依赖于所有代码安全运行的基础。您(和您的客户)负责页面上运行的代码。如果第三方也可以运行代码,那么您就遇到了问题。这就是为什么始终对输入进行编码非常重要的原因,如果攻击者可以注入HTML,则可以注入XSS脚本。
在JavaScript中编码变量的正确方法是使用json_encode
:
var url = <?php echo json_encode($_SERVER["PHP_SELF"]);?>;
htmlspecialchars
是一个用于打印到HTML上下文的编码函数。