mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improve sql wall
This commit is contained in:
@@ -27,7 +27,7 @@ public class MySqlWallTest142 extends TestCase {
|
||||
public void test_false() throws Exception {
|
||||
WallProvider provider = new MySqlWallProvider();
|
||||
|
||||
String sql = "SELECT * FROM `my_crons` WHERE 1 OR nextrun = '0' ";
|
||||
String sql = "SELECT * FROM `my_crons` WHERE 1 AND nextrun = '0' ";
|
||||
Assert.assertTrue(provider.checkValid(sql));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ public class MySqlWallTest91 extends TestCase {
|
||||
provider.getConfig().setLimitZeroAllow(true);
|
||||
provider.getConfig().setCommentAllow(true);
|
||||
provider.getConfig().setConditionDoubleConstAllow(true);
|
||||
provider.getConfig().setConditionLikeTrueAllow(true);
|
||||
|
||||
return provider;
|
||||
}
|
||||
@@ -160,6 +161,14 @@ public class MySqlWallTest91 extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
public void test_true5() {
|
||||
WallProvider provider = initWallProvider();
|
||||
{
|
||||
String sql = "select * from view_featureWarm where 1 = 1 and MaterialID in (select Materialid from material where Code like '%%' and name like '%%' and specs like '%%') and sumbalcqty <> 0";
|
||||
Assert.assertTrue(provider.checkValid(sql));
|
||||
}
|
||||
}
|
||||
|
||||
public void test_true() throws Exception {
|
||||
WallProvider provider = initWallProvider();
|
||||
{
|
||||
|
||||
@@ -44,6 +44,7 @@ public class SQLServerWallTest_0 extends TestCase {
|
||||
provider.getConfig().setLimitZeroAllow(true);
|
||||
provider.getConfig().setCommentAllow(true);
|
||||
provider.getConfig().setConditionDoubleConstAllow(true);
|
||||
provider.getConfig().setConditionLikeTrueAllow(true);
|
||||
|
||||
return provider;
|
||||
}
|
||||
@@ -136,6 +137,22 @@ public class SQLServerWallTest_0 extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
public void test_true6() throws Exception {
|
||||
WallProvider provider = initWallProvider();
|
||||
{
|
||||
String sql = "select count(1) from [Tiger_Help] where 1 = 1 and id = 1";
|
||||
Assert.assertTrue(provider.checkValid(sql));
|
||||
}
|
||||
}
|
||||
|
||||
public void test_true7() throws Exception {
|
||||
WallProvider provider = initWallProvider();
|
||||
{
|
||||
String sql = "select objjc,objname,pwd,servadd from wfp..wfpsys_user where objname in(select name from master..sysdatabases) ";
|
||||
Assert.assertTrue(provider.checkValid(sql));
|
||||
}
|
||||
}
|
||||
|
||||
public void test_true() throws Exception {
|
||||
WallProvider provider = initWallProvider();
|
||||
{
|
||||
|
||||
@@ -23,16 +23,17 @@ import com.alibaba.druid.wall.WallUtils;
|
||||
|
||||
/**
|
||||
* 这个场景,检测可疑的Having条件
|
||||
*
|
||||
* @author wenshao
|
||||
*
|
||||
*/
|
||||
public class WallSelectWhereTest0 extends TestCase {
|
||||
private String sql = "SELECT F1, F2 from t WHERE 1 = 1 OR F1 = ?";
|
||||
|
||||
private String sql = "SELECT F1, F2 from t WHERE 1 = 1 AND F1 = ?";
|
||||
|
||||
public void testMySql() throws Exception {
|
||||
Assert.assertTrue(WallUtils.isValidateMySql(sql));
|
||||
}
|
||||
|
||||
|
||||
public void testORACLE() throws Exception {
|
||||
Assert.assertTrue(WallUtils.isValidateOracle(sql));
|
||||
}
|
||||
|
||||
@@ -23,24 +23,24 @@ import com.alibaba.druid.wall.WallUtils;
|
||||
|
||||
/**
|
||||
* 这个场景,检测可疑的Having条件
|
||||
*
|
||||
* @author wenshao
|
||||
*
|
||||
*/
|
||||
public class WallSelectWhereTest1 extends TestCase {
|
||||
|
||||
public void testMySql_true() throws Exception {
|
||||
Assert.assertTrue(WallUtils.isValidateMySql("SELECT F1, F2 from t WHERE 1 = 1 OR FID = ?"));
|
||||
Assert.assertTrue(WallUtils.isValidateMySql("SELECT F1, F2 from t WHERE 1 = 1 AND FID = ?"));
|
||||
}
|
||||
|
||||
|
||||
public void testORACLE_true() throws Exception {
|
||||
Assert.assertTrue(WallUtils.isValidateOracle("SELECT F1, F2 from t WHERE 1 = 1 OR FID = ?"));
|
||||
Assert.assertTrue(WallUtils.isValidateOracle("SELECT F1, F2 from t WHERE 1 = 1 AND FID = ?"));
|
||||
}
|
||||
|
||||
|
||||
public void testMySql_false() throws Exception {
|
||||
Assert.assertFalse(WallUtils.isValidateMySql("SELECT F1, F2 from t WHERE FID = ? OR 1 = 1"));
|
||||
Assert.assertFalse(WallUtils.isValidateMySql("SELECT F1, F2 from t WHERE 1 = 1 AND FID = ? OR 1 = 1"));
|
||||
}
|
||||
|
||||
|
||||
public void testORACLE_false() throws Exception {
|
||||
Assert.assertFalse(WallUtils.isValidateOracle("SELECT F1, F2 from t WHERE FID = ? OR 1 = 1"));
|
||||
Assert.assertFalse(WallUtils.isValidateOracle("SELECT F1, F2 from t WHERE 1 = 1 AND FID = ? OR 1 = 1"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user