XSS(Cross Site Script)跨站脚本注入攻击,后端对用户的输入没有做处理直接输出到前端页面,此时攻击者构造恶意的JS代码,在前端能够解析执行这些恶意JS代码,可能会造成Cookie泄露、XSS蠕虫等危害。
-
java解决XSS,附字节流进行传输模式
private static void checkXSS(JSONObject jsonObject) { BASE64Decoder base64Decoder = new BASE64Decoder(); String htmlContent = (String) jsonObject.get("htmlContent"); String decodeContent = null; try { if (!"".equals(htmlContent) && null != htmlContent) { decodeContent = new String( base64Decoder.decodeBuffer(htmlContent), StandardCharsets.UTF_8); //对脚本的空格、换行进行整理 decodeContent = decodeContent.replaceAll("\\s*|\t|\r|\n",""); } } catch (IOException e) { e.printStackTrace(); logger.info("字节流转码失败..."); } if (decodeContent != null && decodeContent.toLowerCase().contains("javascript".toLowerCase())) { throw new CustomBusinessException("内容存在脚本或敏感信息,请重新填写..."); } }