Java jsp表单的字段验证
我有一个名为Java jsp表单的字段验证,java,javascript,oracle,validation,jsp,Java,Javascript,Oracle,Validation,Jsp,我有一个名为Description的jsp表单。此字段声明如下 <input type="text" name="description"> 此值用于组合SQL查询: 从引擎中选择“%”(字段中的值)%”之类的描述 当用户输入字母数字字符时,它工作正常,但当用户输入特殊字符时,如单引号符号:” 我的问题是: 我如何在服务器端处理这个问题 如果有必要在JavaScript上实现,那么需要过滤哪些字符 谢谢。使用参数化查询来处理此类问题。使用参数化查询来处理此类问题。您所做的被认为
Description
的jsp表单。此字段声明如下
<input type="text" name="description">
此值用于组合SQL查询:
从引擎中选择“%”(字段中的值)%”之类的描述
当用户输入字母数字字符时,它工作正常,但当用户输入特殊字符时,如单引号符号:”
我的问题是:
谢谢。使用参数化查询来处理此类问题。使用参数化查询来处理此类问题。您所做的被认为是非常糟糕的做法,可能会导致非常糟糕的事情。。。
你所做的被认为是一种非常糟糕的做法,可能会导致非常糟糕的事情。。。
使用准备好的语句,而不是组合SQL查询字符串。你的方式容易受到攻击 如果无法使用PreparedStatements,则在将此字段值传递给SQL查询之前,使用java正则表达式删除特殊字符 有
不要使用javascript过滤掉特殊符号。它不会保护您免受sql注入攻击。攻击者可以伪造自己的表单而不验证javascript并攻击您的服务器。使用准备好的语句而不是编写SQL查询字符串。你的方式容易受到攻击 如果无法使用PreparedStatements,则在将此字段值传递给SQL查询之前,使用java正则表达式删除特殊字符 有
不要使用javascript过滤掉特殊符号。它不会保护您免受sql注入攻击。攻击者可以在没有验证javascript的情况下伪造自己的表单并攻击您的服务器。您可以使用javascript和正则表达式通过基本验证删除无效字符:
<script type="text/javascript">
var str= document.getElementById('mySearch').value;
str=str.replace(/[^A-Za-z0-9]/g,'');
alert(str);
</script>
var str=document.getElementById('mySearch').value;
str=str.替换(/[^A-Za-z0-9]/g');
警报(str);
但是我同意hkutluay,参数化查询是更好的方法。您可以使用JavaScript和正则表达式通过基本验证删除无效字符:
<script type="text/javascript">
var str= document.getElementById('mySearch').value;
str=str.replace(/[^A-Za-z0-9]/g,'');
alert(str);
</script>
var str=document.getElementById('mySearch').value;
str=str.替换(/[^A-Za-z0-9]/g');
警报(str);
但我同意hkutluay的观点,参数化查询是更好的途径。我想你说的是java中的PreparedStatement,但我不可能使用PreparedStatement,因为框架不支持它。我想你说的是java中的PreparedStatement,但是我不可能使用PreparedStatement,因为框架不支持它。最终用户可以完全控制JavaScript代码。所以绝对不要在JavaScript中进行这种转义。在服务器端使用
PreparedStatement
。无论你使用的框架是什么,都不支持它,责怪它的作者。这是框架中一个巨大的设计错误,因为它为SQL注入攻击敞开了大门。最终用户完全可以控制JavaScript代码。所以绝对不要在JavaScript中进行这种转义。在服务器端使用PreparedStatement
。无论你使用的框架是什么,都不支持它,责怪它的作者。这在框架中是一个巨大的设计错误,因为它为SQL注入攻击敞开了大门。