SQL防注入

  • 文档创建者:susie
  • 编辑次数:9次
  • 最近更新:Wendy123456 于 2020-03-11
  • 1. 概述

    SQL 注入就是一些人通过恶意的参数输入,让后台执行这段 SQL,达到获取数据或者破坏数据库的目的。

    SQL 防注入就是通过以下两种方式来达到防止 SQL 注入的目的:

    • 禁用特殊关键字防止 SQL 注入。

    • 通过字符转义防止 SQL 注入。

    注:该功能只对 FineReport 模板生效。

    2. 特殊关键字

    2.1 开启特殊关键字

    以管理员身份进入数据决策系统,点击管理系统>安全管理>SQL防注入,如下图所示:

    注:当 SQL 参数中存在已禁用的字符时,则在日志中抛出错误信息。

    1583926803349116.png

    2.2 添加特殊关键字

    1)点击「禁用特殊关键字」按钮右下方的编辑按钮,可以新增特殊关键字或删除自定义的特殊关键字。如下图所示:

    1583927675132318.png

    2)点击添加特殊关键字,可自定义添加关键字,如下图所示:

    注:可删除自定义的特殊关键字。

    1583930515762397.png

    正则表达式说明:(?i)select(?i)表示不区分select大小写,表示边界,详细请查看 正则表达式元字符 

    3)可在右侧搜索框进行全局搜索,可搜索到已选择和未选择的特殊关键字,如下图所示:

    1583930914372244.png

    2.3 特殊关键字禁用效果查看

    在 FineReport 设计器中分页预览模板%FR_HOME%\webroot\WEB-INF\reportlets\GettingStarted.cpt,在「地区」右侧文本框中输入select( SQL 参数中存在已禁用字符 select ),点击查询,则日志抛出错误信息:因使用了禁用的字符 xxx,怀疑进行 SQL 注入攻击,有特殊需要请联系系统管理员。

    如下图所示:

    1583931281838602.png

    3. 字符

    3.1 开启转义字符

    以管理员身份进入数据决策系统,点击管理系统>安全管理>SQL防注入,开启转义字符按钮,当 SQL 参数中存在需要转义的字符时,这些字符会被转为空,如下图所示:

    1583931560729775.png

    3.2 添加字符

    添加字符设置和添加特殊关键字设置操作步骤相同,具体步骤可参考本文 2.2 章节。

    4. 注意事项

    问题描述:

    用户添加转义字符括号()后,决策系统登录界面空白,无法进行登录操作。

    解决方案:

    括号()在正则表达式里是有特殊含义,括号()为转义字符会匹配所有相关项,所以禁止使用逗号句号括号作为转义字符,如果一定要使用括号作为转义字符,添加字符时需修改写法为\(\),如下图所示:

    1583932375259576.png

    附件列表


    主题: 数据决策系统
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!