我有一点问题,
例如,我最后一次使用MySQL和现在的PDO,这就是我的问题:
当用户希望在我的网站上发布消息时,如果他尝试发布<div class="HAHAHA">
这样的内容,那么它就无法发布,或者它会显示:From USER, Message => <div class="HAHAHA">
但是现在使用PDO,当用户发布像HTML一样可以在我的网站上运行时。 (我不知道是否有所作为)。
我的代码:
<?php $contenu = nl2br($_POST['contenu']);
$sql_add_pub = $pdo->prepare("INSERT INTO publications (steamid,profile,contenu,ajout,ip) VALUES ('".$user['steamid']."','".$user['steamid']."', :contenu , '".time()."', '".$_SERVER['REMOTE_ADDR']."') ");
$sql_add_pub->execute(Array("contenu" => $contenu)); ?>
所以我的问题是,如何用PDO解决这个问题?
提前致谢。
答案 0 :(得分:-2)
首先,永远不要在查询字符串中使用用户输入。使用准备好的陈述。这将有助于防止SQL注入。
其次在用户输入上使用PHP strip_tags函数。 http://php.net/manual/en/function.strip-tags.php
这会阻止人们注入HTML。