【发布时间】:2010-11-16 07:18:07
【问题描述】:
我一直在尝试传递这个值:
// Content to submit to php
Others string here. And this link:
http://www.youtube.com/watch?v=CUUgKj2i1Xc&feature=rec-LGOUT-exp_fresh+div-1r-2-HM
到一个php页面,并将其插入数据库。这是我当前的代码:
... // javascript
var content = $("#mcontent").val();
$.ajax({
url : '<?php echo PATH; ?>functions/save.php',
type: 'POST',
data: 'id=<?php echo $_GET['id']; ?>&content=' + content + '&action=save&val=<?php echo md5("secr3t" . $_SESSION['userid_id']); ?>',
dataType: 'json',
success: function(response) {
if (response.status == 'success') {
alert(response.message);
} else {
alert(response.message);
}
}
});
实际上没有错误,但是在数据库中,它保存的是:
Others string here. And this link:
http://www.youtube.com/watch?v=CUUgKj2i1Xc
我想我知道是什么问题,问题是:
http://www.youtube.com/watch?v=CUUgKj2i1Xc&feature=rec-LGOUT-exp_fresh+div-1r-2-HM
我认为它将“&feature=”作为另一个 POST 数据。我尝试过的:
在 & 符号前添加斜杠 (http://phpjs.org/functions/addslashes:303)
使用 Javascript HTML 编码/解码功能(在互联网上也可以找到)
但两者都不起作用。你还有什么办法吗?
编辑:
您预见到可能发生的任何其他问题吗?内容由用户输入/写入。这意味着,用户可以输入/写任何东西。在反手,我做了其他检查,包括“mysql_real_escape_string”
【问题讨论】:
-
<?php echo $_GET['id']; ?>? 危险:您有 XSS 安全漏洞。请勿在未将其转换为您使用的语言的情况下包含用户数据!在这种情况下,JavaScript 然后检查</script>是否转换为<\/script>(如果它出现在字符串中)。 -
感谢大卫的警告。那么,要知道哪个用户发布它,我应该存储到 $_SESSION 变量吗?请指教
-
会话变量是存储用户 ID 的明智之选,是的。
标签: php jquery ajax post-parameter