更新:
我仍然像以前一样困惑。有人能回复我的最后一条评论吗
如果我的所有数据(本例中为+title1+和+title2+,请参见下文(都使用PHP进行了清理,我还需要担心javascript吗?我担心我在下面的代码中使用title="+title2+"(撇号是我担心的(。
html''javascript:
<div id="verification"></div>
<script>
function update() {
$.ajax({
url: 'update.php', //php
data: "",
dataType: 'json',
success: function (data) {
//on receive of reply
var title1 = data[0];
var title2 = data[1];
$('#verification').html("<img src=images/test"+title1+".gif title='"+title2+"'></img>"); //output to html
}
});
}
</script>
json响应
["1","test test test"]
输出(通过带标题的鼠标悬停文本(
test test test
php(省略php清理(
$result = mysql_query("SELECT title1, title2 FROM users WHERE username = '$foobar'")
or die(mysql_error());
$array = mysql_fetch_row($result);
echo json_encode($array);
需要考虑两个不同的元素:
- 数据库:使用准备好的语句(PDO或mysqli(来避免通过用户输入注入SQL
- UI:根据需要对用户输入进行转义,以避免XSS攻击
虽然通过PDO/mysqli准备的语句对数据库进行查询的用户输入是">santizied",但在浏览器中将用户输入显示回网页之前,需要进一步考虑。