草庐IT

mysql - 哪些 SQL 注入(inject)方法不是 "destroyed"by mysql_real_escape_string();?

是否有一个SQL注入(inject)方法的列表不能仅使用mysql_real_escape_string();和utf8编码来保护?对于整数,我使用intval();是否足够安全?对于那些认为我想获得“教程”来破解任何人的人:不,我不会。我只想知道如何让我的应用程序更安全,我想知道它们是否99%安全以防黑客攻击 最佳答案 如果给定一个有效的数据库连接,mysql_real_escape_string()应该在所有情况下都是安全的字符串数据(thisanswer中描述的罕见异常(exception))。但是,字符串之外的任何内容都不会

php - "mysqli_real_escape_string"是否足以避免 SQL 注入(inject)或其他 SQL 攻击?

这是我的代码:$email=mysqli_real_escape_string($db_con,$_POST['email']);$psw=mysqli_real_escape_string($db_con,$_POST['psw']);$query="INSERTINTO`users`(`email`,`psw`)VALUES('".$email."','".$psw."')";有人能告诉我它是否安全,或者它是否容易受到SQL注入(inject)攻击或其他SQL攻击? 最佳答案 Couldsomeonetellmeifitisse

php - mysql_real_escape_string 只转义一种类型的引号

我的服务器运行的是PHP5.2.17,我已经使用php.ini文件禁用了魔术引号。我有一个字符串数组,有些像abcd"efg"hij'klmnop'q我使用以下代码转义它们以插入到mysql数据库中foreach($arrayas&$data){mysql_real_escape_string($data);}然后我像这样构造我的sql$sql='INSERTINTOtableVALUES('.'"'.$array[0].'",'.'"'.$array[1].'",'.'"'.$array[2].'")';当我尝试执行查询时出现错误。我在遇到错误时输出$sql变量,似乎mysql_re

php - PHP mysql_real_escape_string() 保护数据库名称吗?

我知道mysql_real_escape_string()在以下字符前添加反斜杠:\x00、\n、\r、\、'、"和\x1a我知道这如何防止查询注入(inject)where子句中的变量之类的东西。但这是我不确定的情况:$query="SELECT*FROM$dbWHERE1";如果$db是从用户输入中获取的,那么用户可以插入如下内容:$db='RealDatabaseWHERE1;从RealDatabase中删除1;从RealDatabase中选择“”;根据我的理解,mysql_real_escape_string()不会影响这个字符串,进行最终查询:$query="SELECT*F

php - 使用 mysql_real_escape_string() 时访问被拒绝错误

我试图在数据进入我的数据库之前转义一些数据,但我一直收到这个错误:Warning:mysql_real_escape_string():Accessdeniedforuser现在这通常表明我没有连接到数据库(它还声明(使用密码:NO))。我对此有点困惑,因为当连接到数据库时,我有一个“死”子句,所以如果连接失败,我会被告知。因此,我通过在试图转义数据的同一个函数中运行一个简单的查询来测试这个理论,它工作得很好。那么到底为什么转义方法不起作用或无法连接到数据库。我注意到错误状态的用户不是我用来访问数据库的用户,它类似于“www-data@localhost”。是否可以尝试使用不同的用户登

php - 警告 : mysql_real_escape_string(): Access denied for user '' @'localhost' (using password: NO)

当在没有mysql_real_escape_string的情况下使用以下代码时,工作正常。我只是想获取一个可能有apost的文本字符串。从输入表单并将其格式化以放入mysql表中。";echo"1recordadded";mysqli_close($con);?> 最佳答案 不,你不应该混合使用mysql和mysqli。在这里使用而不是mysql_real_escape_string($var):$con->real_escape_string($var); 关于php-警告:mysql

php - 绕过 mysql_real_escape_string() 的 SQL 注入(inject)

即使使用mysql_real_escape_string()是否也有SQL注入(inject)的可能性?功能?考虑这个示例情况。SQL在PHP中是这样构造的:$login=mysql_real_escape_string(GetFromPost('login'));$password=mysql_real_escape_string(GetFromPost('password'));$sql="SELECT*FROMtableWHERElogin='$login'ANDpassword='$password'";我听到很多人对我说这样的代码仍然很危险,即使使用mysql_real_es

php - 对 mysql_real_escape_string 的每次调用都需要再次访问数据库吗?

http://php.net/manual/en/function.mysql-real-escape-string.php:mysql_real_escape_string()callsMySQL'slibraryfunctionmysql_real_escape_string,whichprependsbackslashestothefollowingcharacters:\x00,\n,\r,\,',"and\x1a.好吧,基本上如果我做过这样的事情:mysql_query("insertT(C)select'".mysql_real_escape_string($value).

php - 有人可以清楚地解释为什么mysqli_prepare()/bind_param()比real_escape_string()更好吗?

Thisquestionalreadyhasanswershere:Whyisusingamysqlpreparedstatementmoresecurethanusingthecommonescapefunctions?(7个答案)7年前关闭。好吧,我还是不太明白。我一直在读,为了正确地逃避MySQL查询,您需要使用mysqli_prepare()和mysqli_bind_param()。我尝试使用此设置,坦率地说,这有点笨拙。当我不再需要再次引用它们时,我会停留在通过引用传递变量的过程中,而完成同一任务只是更多的代码行。我想我只是不明白两者之间的区别是什么:query('UPDAT

php - Mysql Real Escape String PHP函数添加 "\"到我的字段条目

我正在使用PHP向我的MySQL数据库提交一个表单。我正在通过mysql_real_escape_string($content)函数发送表单数据。当条目出现在我的数据库中时(在phpMyAdmin中检查),我所有的双引号和单引号都被转义了。我相当确定这是一个PHP配置问题?所以:$content='Hi,mynameisJaschaandmy"favorite"thingtodoissleep';mysql_real_escape_string($content);$query='INSERTINTODB...'在我的数据库中显示为:嗨,我叫Jascha,我“最喜欢”做的事情是sle