bro*_*rot 2 java database jsp escaping
我正在学习JSP和Java,并编写了一个(非常)简单的留言板来开始使用JSP.但我想确保没有人可以使用CSS,所以我需要在将HTML代码保存到mySQL数据库之前将其删除.我已经在这里搜索过并找到了"
PreparedStatement pStmt = conn.prepareStatement("INSERT INTO test VALUES (ID, ?, ?)");
pStmt.setString(1, request.getParameter("sender"));
pStmt.setString(2, request.getParameter("text"));
pStmt.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
那么这样做的正确方法是什么?
简短回答:看看org.apache.commons.lang.StringEscapeUtils.escapeHtml().
更详细的答案:转义HTML是演示代码的工作,而不是数据库代码.如果出于某种原因,您希望在非Web环境中的某些位置显示数据(例如经典GUI),该怎么办?你将不得不解开整个事情,否则它将显示总垃圾.
只需按原样保存数据,并确保在显示之前逃避用户获得的所有内容(好吧,也许不是数字存储为数字,但你明白了).
如果你正在使用AJAX,你可以更进一步,只能在JavaScript中转义你的字符串(或使用innerText).