我正在尝试将SQL查询字符串从Java Applet传递给Servlet作为参数。
问题是在Applet中我有话说:sql = select * from p where(+ p = 1)
Servlet中生成的sql参数是sql = select * from p where(+ p = 1)。
所以任何人都知道如何阻止浏览器从参数中删除+字符?
是否有逃脱角色?
谢谢。
答案 0 :(得分:3)
不要这样做。这是SQL注入的直接方式(例如,任何用户都可以将DELETE请求插入到get字符串并使服务器崩溃)
答案 1 :(得分:3)
您可以使用java.net.URLEncoder
。
param = URLEncoder.encode(param, "UTF-8");
也就是说,整个想法都是漏洞而且非常容易受到攻击。可以轻松地显示URL并手动向其发送DELETE FROM p
。而是将命令作为参数发送,而不是完成SQL查询。保留并隐藏服务器端的SQL查询。