-1
我正在使用JSP一段时间。我有这个选择语句:使用JavaScript/jQuery防止SQL注入
query = "SELECT * FROM USER_PASS WHERE USERNAME = '" + name + "'";
哪一个容易受到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;
}
}
哪个更好用?这有什么缺点吗?
谁说攻击者要使用你的前端?自动SQL注入工具只是发送HTTP请求。 – Blender 2013-02-23 06:16:56
@Blender:如果我正在编写一个preparedstatement而不是此JavaScript代码,那么它会阻止注入? – 2013-02-23 06:18:27
我会+10 Blender的评论,如果我可以 - *不信任客户端*。在服务器上准备好的语句将防止所有SQL注入攻击(但不一定是其他表面)。不是:防止不良信息超出了SQL注入攻击的范围。 – 2013-02-23 06:18:40