分享SQL中的注入漏洞

Posted Butterapple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享SQL中的注入漏洞相关的知识,希望对你有一定的参考价值。

例:假设一个账户密码的输入在数据库中是这样进行判断的。

SELECT (FPASSWORD = 123456 ) AS PWDCORRECT
FROM T_USER
WHERE FUSER= GUEST

如果输入:

SELECT (FPASSWORD=1 OR 1=1) AS PWDCORRECT
FROM T_USER
WHERE FUSER=ABC

因为 ‘1’=‘1’ 永远返回的是true 所以 这就造成了SQL 的注入漏洞。

 

解决办法:

  ①:过滤敏感字符

  

if(user.contains("or","and","select","delete"))
{
    printf("可能存在注入漏洞攻击!");
}

  ②使用参数化 SQL语句(推荐

  

string user=textUser.getText();
string password=textPassword.GetText();

query=CreateQuery("SELECT (FPASSWORD= :PASSWORD) AS PWDCORRECT FROM T_USER WHERE F_USER=:USER");

query.SetParameter(":PASSWORD",password);
query.SetParameter(":USER",user);

if(rs.getBool("PWDCORRECT")==TRUE){
  //密码正确  
}

 

以上是关于分享SQL中的注入漏洞的主要内容,如果未能解决你的问题,请参考以下文章

sql注入漏洞

4个单词,谷歌返回16个SQL注入漏洞

4 个单词,谷歌返回 16 个 SQL 注入漏洞...

4 个单词,谷歌返回 16 个 SQL 注入漏洞...

sql注入分享

2019年7月安全分享会摘要