-1 javascript jsp sql-injection
我正在使用JSP一段时间.我有这个选择声明:
query = "SELECT * FROM USER_PASS WHERE USERNAME = '" + name + "'";
Run Code Online (Sandbox Code Playgroud)
哪个易受SQL注入攻击.我搜索了一些文章,发现我可以使用预处理语句来避免SQL注入.我发现它更令人困惑.我的意见是,如果我可以找到输入;,'或者--在用户给出的输入中,那么我可以向他们显示一条警告消息,说明你不能在这里使用这些符号,我不会处理数据.这可能是我的JavaScript代码:
function validateSQL()
{
var x=document.forms["myForm"]["username"].value;
var pos = 0;
pos=x.indexOf("'");
if (pos!=0)
{
alert("Trying to hack me?");
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
哪个更好用?这有什么缺点吗?
您绝对不能依靠客户端上的JavaScript来保护您; 恶意用户可以轻松绕过任何客户端检查..您可以随时在浏览器中禁用JavaScript.
只是因为某些事情令人困惑并不意味着你不应该这样做; 参数化查询不会混淆,所以你应该练习和学习,直到你明白. ; , --甚至没有接近可能导致SQL注入的唯一符号.
我不熟悉JSP,准备查询的方法看起来很简单.
String myquery = "SELECT * FROM USER_PASS WHERE USERNAME = ?";
PreparedStatement mystatement = connection.prepareStatement(myquery);
mystatement.setString(1, name);
ResultSet myresults = mystatement.execute();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5774 次 |
| 最近记录: |