我正在为我的网站建立一个评论系统。问题是我想使用HTML编辑器,但不是完全必要的。
我的问题是安全问题。如何保护我保存在数据库中的用户输入?因为我在我的网站上显示了输入,我想防止XSS,SQL注入和其他类似的事情。但我仍然希望我的用户能够写出任何字符。
例如,daniweb使用和HTML编辑器(所见即所得。
我也试过了
function bstring( $value )
{
$value = htmlentities( $value, ENT_QUOTES );
$value = strip_tags( $value );
$value = mysql_real_escape_string( $value );
return (string)$value;
}发布于 2014-07-24 23:14:34
如果您使用,则可以使用以下命令:
$mysqli->real_escape_string($value);它
SQL字符串中的特殊字符以便在
语句
中使用
发布于 2014-07-24 23:15:29
如果您希望允许用户输入HTML标记,但不允许他使用某些标记,如Scripts,那么您应该实现某种形式的标记白名单。
$allowed_tags = "<b><i><br>"; // Some safe examples
$value = strip_tags( $value, $allowed_tags );始终知道何时以及为什么要使用哪个过滤器:
。
发布于 2014-07-24 23:22:56
htmlentities不提供安全性
您需要在列表后面使用replace去除html,您想要禁止哪些标签,以及您想要允许哪些标签
function bstring($str){
//forbid your tags here
$forbidden_tags = array('script', 'body', 'html');
for($i = 0; $i < count($forbidden_tags); $i++){
$tag = '%<'.$forbidden_tags[$i].'.*?</'.$forbidden_tags[$i].'>%i';
$result = preg_replace($tag, 'NOT ALLOWED', $str);
}
return $result;
}https://stackoverflow.com/questions/24937458
复制相似问题