mysql_real_escape_string(htmlspecialchars())真的有用吗?为什么?

Zer*_*oth 1 php mysql sql security

有这样的东西真的很有用吗:

$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
Run Code Online (Sandbox Code Playgroud)

为什么我们用这个?如何优化呢?

谢谢

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("nom_db");

$passe = mysql_real_escape_string(htmlspecialchars($_POST['passe']));
$passe2 = mysql_real_escape_string(htmlspecialchars($_POST['passe2']));
if($passe == $passe2)
{
    script here
}

else
{
    echo 'Your password is wrong';
}
?>
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 6

在该代码示例中,它根本没用.

htmlspecialchars将HTML中具有特殊含义的字符转换为实体.如果您要将某些文本插入到HTML文档中(因为它会停止,例如,<被视为标记的开头,并防止XSS),这一点至关重要.

mysql_real_escape_string将MySQL SQL查询中具有特殊含义的字符转换为转义符.这允许您安全地将任意字符串插入MySQL数据库(防止错误和注入.但是,有更好的方法来做同样的事情.

在这种情况下,您只是比较两个字符串.通过一堆转换运行它们不会做任何有用的事情.