【发布时间】:2011-02-16 21:56:20
【问题描述】:
我正在组建一个网站(我们已经在使用 javascript 在客户端进行预验证)。然而,在厌倦了每隔一行写 mysql_real_escape_string 之后。我编写了这个类,它只有两个功能,主要专注于清理用户输入/sql 中的数据。我的问题是,有什么方法可以更轻松地进行输入清理并提高代码可读性?
<?php
class Safe {
function userinput($string){
$string = strip_tags($string);
$string = htmlspecialchars($string);
return $string;
}
function sql ($string){
$sqlstuff = Array("union", "select", "update", "delete", "outfile", "create");
$string = Safe::str($string);
$string = mysql_escape_string($string);
$string = str_ireplace($sqlstuff, "", $string);
return $string;
}
}
?>
【问题讨论】:
-
根据客户端发送的内容,从 sql 中替换这些常用词似乎会给您带来问题。但是,我建议使用 SQL 抽象层(例如 PDO)并使用它的占位符功能来进行 SQL 清理。 (strip_tags 还是个好主意)
标签: php sql security class sanitization