Search in sources :

Example 36 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest99 method test_false.

public void test_false() throws Exception {
    WallProvider provider = new MySqlWallProvider();
    provider.getConfig().setCommentAllow(false);
    String sql = "select * from t where id = ? or substr(bin(97>>7), -1, 1) = 0";
    Assert.assertFalse(provider.checkValid(sql));
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Example 37 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest_concat method test_true.

public void test_true() throws Exception {
    WallProvider provider = new MySqlWallProvider();
    provider.getConfig().setSelectHavingAlwayTrueCheck(true);
    Assert.assertTrue(// 
    provider.checkValid("select * from tb_product_word where name='' or CONCAT(name,style)='' or CONCAT(shop,style)=''  or CONCAT(ename,style)=''"));
    Assert.assertEquals(1, provider.getTableStats().size());
    Assert.assertTrue(provider.getTableStats().containsKey("tb_product_word"));
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Example 38 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest91 method initWallProvider.

private WallProvider initWallProvider() {
    WallProvider provider = new MySqlWallProvider();
    provider.getConfig().setStrictSyntaxCheck(false);
    provider.getConfig().setMultiStatementAllow(true);
    provider.getConfig().setConditionAndAlwayTrueAllow(true);
    provider.getConfig().setNoneBaseStatementAllow(true);
    provider.getConfig().setLimitZeroAllow(true);
    provider.getConfig().setConditionDoubleConstAllow(true);
    provider.getConfig().setCommentAllow(true);
    provider.getConfig().setSelectUnionCheck(false);
    return provider;
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Example 39 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest92 method test_false.

public void test_false() throws Exception {
    WallProvider provider = new MySqlWallProvider();
    Assert.assertFalse(// 
    provider.checkValid("SELECT * FROM T WHERE FID = 40 OR 1 = (SELECT (CASE WHEN (4484=4484) THEN 1 ELSE 0 END))"));
    Assert.assertEquals(1, provider.getTableStats().size());
    Assert.assertTrue(provider.getTableStats().containsKey("t"));
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Example 40 with MySqlWallProvider

use of com.alibaba.druid.wall.spi.MySqlWallProvider in project druid by alibaba.

the class MySqlWallTest94 method test_false.

public void test_false() throws Exception {
    WallProvider provider = new MySqlWallProvider();
    Assert.assertTrue(// 
    provider.checkValid("select * from test having 1=1"));
    Assert.assertEquals(1, provider.getTableStats().size());
}
Also used : WallProvider(com.alibaba.druid.wall.WallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider) MySqlWallProvider(com.alibaba.druid.wall.spi.MySqlWallProvider)

Aggregations

MySqlWallProvider (com.alibaba.druid.wall.spi.MySqlWallProvider)191 WallProvider (com.alibaba.druid.wall.WallProvider)166 WallCheckResult (com.alibaba.druid.wall.WallCheckResult)21 WallTableStat (com.alibaba.druid.wall.WallTableStat)17 SQLServerWallProvider (com.alibaba.druid.wall.spi.SQLServerWallProvider)12 OracleWallProvider (com.alibaba.druid.wall.spi.OracleWallProvider)10 PGWallProvider (com.alibaba.druid.wall.spi.PGWallProvider)10 Violation (com.alibaba.druid.wall.Violation)3 SQLStatement (com.alibaba.druid.sql.ast.SQLStatement)2 SchemaStatVisitor (com.alibaba.druid.sql.visitor.SchemaStatVisitor)2 WallConfig (com.alibaba.druid.wall.WallConfig)2 File (java.io.File)2 URL (java.net.URL)2 WallFunctionStat (com.alibaba.druid.wall.WallFunctionStat)1 WallProviderStatValue (com.alibaba.druid.wall.WallProviderStatValue)1 WallSqlStat (com.alibaba.druid.wall.WallSqlStat)1 Map (java.util.Map)1 Test (org.junit.Test)1