SQL防注入

编辑
  • 文档创建者:susie
  • 浏览次数:3388次
  • 编辑次数:8次
  • 最近更新:Leo.Tsai 于 2019-07-16
  • 1. 描述

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

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

    • a. 禁用特殊关键字来防止 SQL 注入;

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


    2. 特殊关键字

    2.1 开启特殊关键字

    点击管理系统>安全管理>SQL防注入,开启特殊关键字,当 SQL 参数中存在需要禁用的字符时,则在日志中抛出错误信息,如下图:

    1.png


    2.2 添加关键字

    点击编辑,可以新增/删除特殊关键字,如下图:

    2.png

    点击添加关键字,可以进行自定义关键字,包括删除关键字和添加关键字(支持正则表达式),两个部分,如下图:


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

    注:字符设置没有支持正则表达式

    点击右侧搜索框,进行全局搜索,可搜索到已选择和未选择中的关键字,如下:


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

    打开模板%FR_HOME%\webroot\WEB-INF\reportlets\GettingStarted.cpt,在参数这里输入select,且当 SQL 参数中存在需要禁用的字符select,则在日志里抛出错误信息,因使用了禁用的字符 xxx,怀疑进行 SQL 注入攻击,有特殊需要请联系系统管理员,如下图:



    3. 字符

    3.1 开启字符

    点击管理系统>安全管理-SQL防注入,开启字符,当 SQL 参数中存在需要转义的字符时,则这些字符会被转为空,如下图:

    3.png

    3.2 添加字符

    添加字符设置和添加特殊关键字设置操作步骤相同。

    4. 注意事项

    场景描述:

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

    解决方案:

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

    Snag_1654b87.png


    附件列表


    主题: 决策系统
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]