-
Notifications
You must be signed in to change notification settings - Fork 8.6k
简介_WallFilter
wenshao edited this page Feb 27, 2016
·
6 revisions
WallFilter的功能是防御SQL注入攻击。它是基于SQL语法分析,理解其中的SQL语义,然后做处理的,智能,准确,误报率低。
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
使用WallFilter能让Select/Delete/Update的SQL自动加上租户隔离字段。
WallFilter针对不同的数据库使用不同的SQL Parser和相关配置信息,力求完整理解其SQL语义,从而做更准确的防御手段。Druid目前支持mysql和oracle、sql server,下一步会支持postgres。
WallFilter在运行之后,会使用LRU Cache算法维护一个白名单列表,白名单最多1000个SQL。正常的SQL在白名单中,每次检测只需要一次加锁和一次hash查找,预计在50 nano以内。在白名单之外的SQL检测,预计在50微秒以内。
详细配置看这里