zoukankan      html  css  js  c++  java
  • php代码审计--sql注入

    sql注入是web安全中最常见,也是平常中危害最大的漏洞。

    最近在学习代码审计,拿自己审核的一段代码做个笔记。

    1、sql语句拼接可能引起sql注入

    很多偷懒的程序员对于没有过滤的参数,直接将其拼接到sql语句中,可能导致命令执行。

    如:$sql = "select count(*) as qty from t_user where f_uid='"+$userAccount+"' and f_password='"+$password+"'";

    造成sql注入时的sql语句就变成了select count(*) as qty from t_user where f_uid='admin'--'and f_password=***;

    2、强制转换也不能全部阻挡住sql注入

    有一部分程序员会有一定的安全意识,对变量会进行强制转换来进行过滤。

    如:$sql = sprintf("select count(*) as qty from t_user where f_uid='%d' and f_password='%s'",$userAccount,$password);

    但是,这种过滤是不能挡住sql注入的,主要是因为userAccount会被强制转换成整型也就是%d,但是password所传过来的参数并不会变更,

    因为password所在的位置为字符串。

    总结:预编译是所有sql注入的终结防御,荆轲刺秦王。

  • 相关阅读:
    js验证邮箱
    输出一个金字塔
    仿QQ聊天软件2.0版
    zoj 3662 第37届ACM/ICPC长春赛区H题(DP)
    zoj 3659 第37届ACM/ICPC 长春赛区现场赛E题 (并查集)
    zoj 3640 概率dp
    hdu 5203 && BC Round #37 1002
    poj 3071 概率dp
    poj 2151 概率dp
    zoj 3460 二分+二分图匹配
  • 原文地址:https://www.cnblogs.com/ermei/p/5684087.html
Copyright © 2011-2022 走看看