gpt4 book ai didi

java - 如何避免有趣的字符并在插入数据库之前进行 sanitizer ?

转载 作者:行者123 更新时间:2023-11-29 02:46:35 26 4
gpt4 key购买 nike

我有以下代码片段,我在其中检查 soap 结果并将数据插入我的数据库。

Connection dbconn = null;
Statement stmt1 = null;
Statement stmt2 = null;
try
{
dbconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1", "tes1", "te15");
stmt1 = dbconn.createStatement();
stmt2 = dbconn.createStatement();
DateFormat outDf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = Calendar.getInstance().getTime();

String value = null;
for (int i = 0; i < list.getLength(); i++)
{
Element eElement = (Element) e.getChildNodes();
String Contents = eElement.getElementsByTagName("Content").item(0).getTextContent();
String insertCommand = "INSERT INTO command SET content='"+content+"'";
System.out.println("\n SET INSERT :" + insertCommand);
int count = stmt1.executeUpdate(insertCommand);
}

}

我注意到内容是这样的DCN5�716732412?因此,当我将此内容用于下一个流程时,我收到错误请求错误。如果内容本身具有滑稽的特征,我该如何清理?

最佳答案

您需要按照@Gurwinder Singh 的建议使用准备好的语句,

关注example from this other answer on StackOverflow ,或在 OWASP 站点 ( https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet ) 的这个页面上,它将向您展示如何安全地执行此操作,但简而言之,类似于以下内容:

 String custname = request.getParameter("customerName"); // This should REALLY be validated too
// perform input validation to detect attacks
String query = "SELECT account_balance FROM user_data WHERE user_name = ? ";

PreparedStatement pstmt = connection.prepareStatement( query );
pstmt.setString( 1, custname);
ResultSet results = pstmt.executeQuery( );

如果你想允许字符是 unicode 字符,你需要 use a unicode connection string and table, i think ,并确保你的表也设置为存储 unicode - 如果你想支持亚洲字符,你可能无论如何都需要这样做。

  • 确保告诉 JDBC 使用哪种编码。这是在连接到数据库时作为查询字符串的一部分完成的。这是关键部分:?useUnicode=yes&characterEncoding=UTF-8

    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname?useUnicode=yes&characterEncoding=UTF-8","用户名", "密码");

  • 确保您的表格使用 UTF-8。我通常使用“编码:UTF-8 Unicode(utf8)”和“整理:utf8_bin”

从上面的链接中截取。

关于java - 如何避免有趣的字符并在插入数据库之前进行 sanitizer ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41385836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com