这篇文章主要围绕库保护Java/jsp的SQL/javascript注入和javaweb防止sql注入展开,旨在为您提供一份详细的参考资料。我们将全面介绍库保护Java/jsp的SQL/javascr
这篇文章主要围绕库保护Java / jsp的SQL / javascript注入和javaweb防止sql注入展开,旨在为您提供一份详细的参考资料。我们将全面介绍库保护Java / jsp的SQL / javascript注入的优缺点,解答javaweb防止sql注入的相关问题,同时也会为您带来ASP.NET MVC 3如何将Javascript注入主布局、Chrome扩展程序JavaScript注入、JavaEE_JavaScript__前台(Jsp页面) + 后台数据处理(Servlet),与javaScript的过程的处理、JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)_javascript技巧的实用方法。
本文目录一览:- 库保护Java / jsp的SQL / javascript注入(javaweb防止sql注入)
- ASP.NET MVC 3如何将Javascript注入主布局
- Chrome扩展程序JavaScript注入
- JavaEE_JavaScript__前台(Jsp页面) + 后台数据处理(Servlet),与javaScript的过程的处理
- JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)_javascript技巧
库保护Java / jsp的SQL / javascript注入(javaweb防止sql注入)
任何人都知道一个好的库,我可以在插入字符串之前在其中运行字符串,这样可以去除sql / javascript代码?在jsp页面中运行。
理想情况下,lib将是:
- 自由
- 轻巧的
- 易于使用
预先感谢SO社区,他们将很乐意答复:)
答案1
小编典典Apache Commons lang StringEscapeUtils将为您提供一些帮助。它逃脱,不剥离。
http://commons.apache.org/lang/api/org/apache/commons/lang/StringEscapeUtils.html
编辑:转义可以避免注入攻击,因为它可以确保用户输入的数据不会作为代码执行,而是始终作为数据呈现给用户。
ASP.NET MVC 3如何将Javascript注入主布局
<script type="text/javascript"> @RenderSection("JavaScript") </script>
但VS2010以绿色突出显示它.所以哪个页面使用这个主布局都可以在这里注入Javascript.你们会怎么做?我想这样做的原因是因为我可以在这里添加来自主布局的JavaScript,其他我将不得不在@RenderSection下面定义一个单独的脚本标记.
当我执行以下操作时,VS会给我一个警告(我不喜欢警告):
Validation (HTML 4.01): Element 'link' cannot be nested within element 'link'.
这是我上面警告的代码:
@section HeadSection { <link href="http://yui.yahooapis.com/2.8.2r1/build/button/assets/skins/sam/button.css" rel="stylesheet" type="text/css"> <link href="http://yui.yahooapis.com/2.8.2r1/build/datatable/assets/skins/sam/datatable.css" rel="stylesheet" type="text/css"> }
我怎样才能得到这些警告?
解决方法
Chrome扩展程序JavaScript注入
这里有几个问题。
内容脚本在DOMContentLoaded(by default)之后运行,但这绝不能保证页面之后不会动态运行其脚本。许多现代网页在基于requestAnimationFrame和setTimeout的回调构建UI或响应网络请求而获取新鲜数据时都这样做。
getElementsByClassName
返回实时集合:
-
console.log(aGrid[0])
证明脚本运行时为空 - 然后您的脚本完成
- 然后运行页面脚本并动态添加元素
- 然后您在devtools控制台中扩展了集合
- 然后devtools查找元素并找到它们at that exact moment
解决方案。
可能的解决方案是使用MutationObserver等待元素:
let aGrid = document.getElementsByClassName('fc-time-grid-event');
if (aGrid[0]) {
onGridAdded();
} else {
new MutationObserver((mutations,observer) => {
if (aGrid[0]) {
observer.disconnect();
onGridAdded();
}
}).observe(document,{childList: true,subtree: true});
}
function onGridAdded() {
console.log([...aGrid]);
// use aGrid here
}
更多示例:link。
JavaEE_JavaScript__前台(Jsp页面) + 后台数据处理(Servlet),与javaScript的过程的处理
今天一直遇到一个问题,JSP利用JavaScript 函数将密码进行了清空,后台查看数据的时候,没有找到数据。
分析后的原因为:JavaScript 的代码执行的过程为提交表单之前,因为 javaScript的代码执行修改了表单数据,导致后台接收不到数据,代码如下:
<%-- version 1.0 Copyright (C), 2001-2016, yeeku.H.Lee This program is protected by copyright laws. Program Name: Date: --%> <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 用户登录 </title> <meta name="website" content="http://www.crazyit.org" /> </head> <body> <!-- 输出出错提示 --> <span style="color:red;font-weight:bold"> <% if (request.getAttribute("err") != null) { out.println(request.getAttribute("err") + "<br/>"); } %> </span> 请输入用户名和密码: <!-- 登录表单,该表单提交到一个Servlet --> <form id="login" method="post" action="login"> 用户名:<input type="text" name="username"/><br/> 密 码:<input type="password" id="pass" name="pass"/><br/> <input type="submit" value="登录" id="submitk"/><br/> </form> <script type="text/javascript"> /* var clear = function(){ if(document.getElementById("pass").value != null){ //alert("清空密码"); document.getElementById("pass").value = ""; } } document.getElementById("submitk").onclick = clear; */ </script> </body> </html>
后台Servlet 代码: