相关疑难解决方法(0)

Java - 转义字符串以防止SQL注入

我试图在java中放入一些反sql注入,并且发现很难使用"replaceAll"字符串函数.最后,我需要将任何现有的转换功能\\\,任何"\",任何'\',任何\n\\n使得当字符串由MySQL的SQL注入评估将被阻止.

我已经搞砸了一些我正在使用的代码,所有\\\\\\\\\\\功能都让我的眼睛变得疯狂.如果有人碰巧有这样的例子我会非常感激.

java regex sql sql-injection escaping

142
推荐指数
9
解决办法
24万
查看次数

使用Prepared Statements设置表名

我正在尝试使用预准备语句来设置表名以从中选择数据,但是在执行查询时我一直收到错误.

错误和示例代码显示如下.

[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required.



private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [?]"; //?=date
public Execute(String reportDate){
    try {

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn = DriverManager.getConnection(Display.DB_MERC);
        PreparedStatement st = conn.prepareStatement(query1);
        st.setString(1, reportDate);
        ResultSet rs = st.executeQuery();
Run Code Online (Sandbox Code Playgroud)

关于可能导致这种情况的任何想法?

java sql prepared-statement

27
推荐指数
1
解决办法
2万
查看次数

如何转义SQL插入的单引号...当要插入的字符串在用户生成的变量中时

我正在构建一个使用jdbc执行的insert命令.部分是连接用户生成的字符串...这一切都有效,直到用户使用这样的字符串:

A B C D

String userString="a'bcd";
String insertTableSQL = "INSERT INTO myTable "
                            + "(insertColumn) " 
                            + "VALUES("
                                +"'"+userString+"'"
                                +")";

statement.executeUpdate(insertTableSQL);
Run Code Online (Sandbox Code Playgroud)

java sql jdbc

18
推荐指数
2
解决办法
5万
查看次数

标签 统计

java ×3

sql ×3

escaping ×1

jdbc ×1

prepared-statement ×1

regex ×1

sql-injection ×1