improve sql-wall

This commit is contained in:
wenshao
2013-07-31 17:17:44 +08:00
parent 9ffff1358b
commit b559684c9f
12 changed files with 716 additions and 117 deletions
@@ -1,6 +1,5 @@
package com.alibaba.druid.bvt.filter.wall;
import java.util.Calendar;
import java.util.Collection;
import java.util.Map;
@@ -24,25 +23,26 @@ public class WallStatTest_statMap extends TestCase {
WallContext.clearContext();
}
@SuppressWarnings("unchecked")
public void testMySql() throws Exception {
WallProvider providerA = new MySqlWallProvider();
{
String sql = "select * from t where len(fname) = 1 OR 1 = 1";
String sql = "select * from t where len(fname1) = 1 OR 1 = 1";
Assert.assertFalse(providerA.checkValid(sql));
providerA.addViolationEffectRowCount(10);
}
WallProvider providerB = new MySqlWallProvider();
{
String sql = "select * from t where len(fname) = 2 OR 1 = 1";
String sql = "select * from t where len(fname2) = 2 OR 1 = 1";
Assert.assertFalse(providerB.checkValid(sql));
providerB.addViolationEffectRowCount(11);
}
WallProvider providerC = new MySqlWallProvider();
{
String sql = "select * from t where len(fname) = 2 OR 1 = 1";
String sql = "select * from t where len(fname2) = 2 OR 1 = 1";
Assert.assertFalse(providerC.checkValid(sql));
providerC.addViolationEffectRowCount(12);
}