[英]Is FILTER_SANITIZE_STRING enough to avoid SQL injection and XSS attacks?
[英]How to sanitize data in php in order to avoid SQL injection?
我已經使用了PDO:
$stmt = $aPDO->prepare("INSERT INTO ".$this->getM_oUser()->getM_sTableName()." (email, hash_pw, hash_key) VALUES (:email, :hash_pw, :hash_key)");
$stmt->bindValue(':email', $this->getM_oUser()->getM_sEmail());
$stmt->bindValue(':hash_pw', $this->getM_oUser()->getM_sHash_pw());
$stmt->bindValue(':hash_key', $this->getM_oUser()->getM_sHash_Key());
$stmt->execute();
我是否還應該使用mysql_real_escape_string()處理用戶輸入的字符串? 謝謝。
使用帶有綁定參數的預備語句就足夠了。 您不需要使用mysql_real_escape_string
(即使您願意也可能無法使用-您需要手頭的MySql連接資源)。
我會做類似的事情來從表名中排除很多無用的字符:
$tableName = '`' . preg_replace('`[^-a-zA-Z0-9_]`', $this->getM_oUser()->getM_sTableName()).'`';
$stmt = $aPDO->prepare("INSERT INTO ".$tableName." (email, hash_pw, hash_key) VALUES (:email, :hash_pw, :hash_key)");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.