1. 描述编辑
SQL 注入就是一些人可以通过恶意的参数输入,让后台执行这段 SQL,然后达到获取数据或者破坏数据库的目的。
SQL 防注入就是通过以下两种方式来达到防止 SQL 注入的目的:
a. 禁用特殊关键字来防止 SQL 注入;
b. 通过字符转义来防止 SQL 注入。
2. 特殊关键字编辑
2.1 开启特殊关键字
点击管理系统>安全管理>SQL防注入,开启特殊关键字,当 SQL 参数中存在需要禁用的字符时,则在日志中抛出错误信息,如下图:
2.2 添加关键字
点击编辑,可以新增/删除特殊关键字,如下图:
点击添加关键字,可以进行自定义关键字,包括删除关键字和添加关键字(支持正则表达式),两个部分,如下图:
正则表达式说明,(?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.2 添加字符
添加字符设置和添加特殊关键字设置操作步骤相同。
4. 注意事项编辑
场景描述:
用户添加转义字符括号()后,决策系统登录界面空白,无法进行登录操作。
解决方案:
括号()在正则表达式里是有特殊含义,括号()为转义字符会匹配所有相关项,所以禁止使用逗号,句号,括号作为转义字符,如果一定要使用括号作为转义字符,添加字符时需修改写法为\(\),如下图所示: