一尘不染

保存到数据库之前如何在JSP中转义html?

jsp

我现在正在学习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();

那么执行此操作的正确方法是什么?


阅读 273

收藏
2020-06-08

共1个答案

一尘不染

简短的答案:看看org.apache.commons.lang.StringEscapeUtils.escapeHtml()

更详细的答案:转义HTML是表示代码的工作,而不是数据库代码。如果出于某种原因,您想要在非Web环境(例如经典GUI)中的某个时刻显示数据,该怎么办?您将不得不对整个事情进行转义,否则它将显示全部垃圾。

只需按原样保存数据,并确保 显示数据 之前 避开了从用户那里获得的 所有 内容(好的,也许不是数字存储为数字,但是您会明白这一点)。 __

如果您使用的是AJAX,则可以更进一步,仅在JavaScript中转义字符串(或使用innerText)。

2020-06-08