zoukankan      html  css  js  c++  java
  • 常见sql注入的防范总结

    在平时的开发过程中,我们可能很少会刻意的去为项目做一个sql注入的防范,这是因为你可能因为使用了某些框架,而无意间已经有了对应sql注入的一些防范操作(比如mybatis使用#{XX}传参,属于预编译防范)。今天,我就简要记录下前辈们对于sql注入的一些基本防范和相关知识。

    什么是sql注入

    往复杂里说,我也说不出来,就往简单里说说吧。sql注入就是通过表单提交或者url等方式,在你系统可执行的sql语句中,插入符合sql语法要求的字符串,导致原始sql语句逻辑别打乱,执行了攻击者的恶意代码,从而达到获取你数据库敏感信息或攻击数据库的目的。

    如何防范

    1. 严格限制数据库的操作权限,尽量给出能满足所有操作的最低的权限。
    2. 使用PreparedStatement来代替Statement来执行SQL语句,其后只是输入参数(SQL注入攻击能得逞是因为在原有SQL语句中加入了新的逻辑,PreparedStatement不允许在不同的插入时间改变查询的逻辑结构,大部分的SQL注入已经挡住了
    3. 在WEB层我们可以过滤用户的输入来防止SQL注入比如用Filter来过滤全局的表单参数(Filter处理用户request包含的敏感关键字,然后replace掉或是让页面转到错误页来提示用户,这样就可以很好的防sql注入了
  • 相关阅读:
    python3线程介绍01(如何启动和调用线程)
    CentOS7 设置静态 ip
    png2ico
    Thunderbird 配置 QQ mail
    memcached 开机启动 (Ubuntu)
    CentOS7 docker 安装的 container-selinux 问题及解决
    YAML 的基本语法
    docker 的脚本化安装和使用
    解决Windows下 “setup.py build” 时出现错误 ” error: Unable to find vcvarsall.bat”
    Electric Fence
  • 原文地址:https://www.cnblogs.com/jianzhixuan/p/6439409.html
Copyright © 2011-2022 走看看