java编写过程中发现数据库存在脚本错误怎么处理
问题描述
我在执行更新后的语句上看到跨脚本注入错误。如何清理输出以消除交叉脚本错误。我有一个简单的代码段,它使用PreparedStatement运行选择并返回在前端GUI屏幕上检索到的值。
XSS缺陷消息:“受污染的数据源自对java.sql.ResultSetMetaData.getColumnName的早期调用。”
Java代码:
Connection conn = null;
Statement stmt = null;
PreparedStatement pstmt = null;
try {
List alist= new ArrayList();
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
int count = rs.getMetaData().getColumnCount();
for (int i = 1; i
完整Veracode缺陷:攻击向量: javax.servlet.jsp.JspWriter.print
[模块数受影响的:1
描述:对javax.servlet.jsp.JspWriter.print()的此调用包含跨站点脚本(XSS)缺陷。该应用程序使用不受信任的输入填充HTTP响应,从而使攻击者可以嵌入恶意内容(例如Javascript代码),这些恶意内容将在受害者的浏览器的上下文中执行。 XSS漏洞通常被利用来窃取或操纵Cookie,修改内容表示并破坏机密信息,并定期发现新的攻击媒介。 print()的第一个参数包含来自变量getHtml()的污染数据。污染数据源自对java.sql.ResultSetMetaData.getColumnName的早期调用。污染的数据被定向到javax.servlet.jsp.JspWriter返回的输出流中。
思路:
我不知道为什么ResultSetMetaData
对象正在调用servlet方法,但是如果我正确理解它,它将用于在servlet中打印某些内容。但是,由于ResultSetMetaData
中的所有数据均来自数据库的元数据(可能无法包含javascript代码或其他XSS风险),因此在这种情况下应将其保存。
[ResultSetMetaData
是一个常用的类(并且使用了很长时间),所以我真的不认为这在当前的Java版本中是个问题。
因此,我不知道如何解决此问题,但是我很确定这不是问题,因为不可能在数据库的元数据中添加任何恶意软件代码(javascript或sql注入代码)。 >
不知道朋友们看完上述文章后,都了解清楚了java编写过程中发现数据库存在脚本错误怎么处理的内容了吧!关于技术方面的知识,有不懂的朋友可以随时来找爱站技术频道小编。