sql注入笔记

sql注入笔记

1.什么是sql注入:
      sql注入是将sql代码添加到输入参数中,传递sql服务器解析并执行的一种攻击手法。
sql参数未经过滤直接拼接到sql语句当中, 解析执行,到达预想之外的效果
$sql=” select * from  where id=-1 OR 1=1″;  //OR 1=1  条件查询整张表的

2.sql注入是怎么产生的
 web开发人员无法做到所有的输入都已经过滤;
攻击者利用发送给sql服务器的输入数据,构造可执行的sql代码;
数据库未做相应安全配置。
3.寻找sql注入漏洞
  借助逻辑推理:
         识别web应用中的所有输入点:get数据、 post数据,http头信息
        了解哪些类型的请求会触发异常:在get或post提交数据时,添加单引号,多引号
        检测服务器相应中的异常:
4.如何进行sql注入攻击:
  数字注入:在where条件中添加数字 ,如 select * from  where id=-1 OR 1=1
字符串注入:在用户名input框输入;admin‘# ‘闭合字符串,#注释后面的密码信息,或者用 — 代替 都起到注释后面密码信息的作用。
5.如何预防sql注入
  a.严格检查输入变量的类型和格式;
//数字校验
if (empty($id) || !is_numeric($id)) {
    echo ‘id不能为空必须为数字’;
}
//字符校验
if (empty($name)||preg_match(‘/^[a-zA-Z0-9]{4,}$/’,$name)){
    echo ‘名字不能为空,字符必须在4个以上的符合条件的字符’;
}

b.过滤和转义特殊字符:包括单引号,双引号,反斜杠,通过addslashes()转义,
或者通过mysqli_real_escape_string()效果一样。
c.利用mysqli的预编译机制
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112731.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • qt lineedit_个人总结学生

    qt lineedit_个人总结学生QLineEdit是一个单行文本编辑控件。使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。通过改变QLineEdit的 echoMode() ,可以设置其属性,比如以密码的形式输入。文本的长度可以由 maxLength() 限制,可以通过使用 validator() 或者 inputMask() 可以限制它只能输入数字。在对同一个QLineEdit的validat…

    2022年10月6日
    0
  • php技术–php中感叹号!和双感叹号!!的用法(三元运算)

    php技术–php中感叹号!和双感叹号!!的用法(三元运算)

    2021年10月26日
    40
  • 五大常用算法之二:动态规划算法

    一、基本概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略基本

    2021年12月25日
    42
  • 卷积神经网络卷积层和池化层的作用(卷积神经网络的重要性)

    链接:https://www.zhihu.com/question/36686900/answer/130890492个人觉得主要是两个作用:1.invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)2.保留主要的特征同时减少参数(降维,效果类似PCA)和计算量,防止过拟合,提高模型泛化能力(1

    2022年4月12日
    42
  • 微博用户洞察_实现一个观察者模式

    微博用户洞察_实现一个观察者模式观察者模式:当对象间存在一对多关系时,则使用观察者模式(ObserverPattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。观察者模式定义了对象间的一种

    2022年8月6日
    3
  • 函数指针,指针函数,返回值为指针的函数「建议收藏」

    函数指针,指针函数,返回值为指针的函数「建议收藏」在学习C语言时,一个比较容易混淆的概念就是函数指针、指针函数、返回值为指针的函数。本文将对这三个概念进行区分。指针函数就是返回值为指针的函数,两个本质上是同一事物,只是叫法不同。函数指针就是一个指向函数的指针,本质上是一个指针,只是这个指针指向的对象是函数,而不是一般意义上的存储对象。

    2022年6月22日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号