使用JavaScript/jQuery防止SQL注入

-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)

哪个更好用?这有什么缺点吗?

Exp*_*lls 6

您绝对不能依靠客户端上的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)