浏览器删除 +来自请求参数

发布于 2024-09-01 08:17:42 字数 233 浏览 4 评论 0原文

我正在尝试将 SQL 查询字符串作为参数从 Java Applet 传递到 Servlet。

问题是在Applet中我有话要说: sql=select * from p where(+p=1)

Servlet中生成的sql参数是sql=select * from p where(+p=1)。

那么有人知道如何防止浏览器从参数中删除 + 字符吗?

有转义字符吗?

谢谢。

I'm trying to pass an SQL query string from a Java Applet to Servlet as a parameter.

Problem is that in Applet I have something say: sql=select * from p where(+p=1)

The resulting sql parameter in the Servlet is sql=select * from p where(+p=1).

So anyone knows how to prevent the browser from removing the + character from parameters?

Is there a escape character?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

椵侞 2024-09-08 08:17:42

永远不要这样做。这是 SQL 注入的直接方式(例如任何用户都可以将 DELETE 请求插入到 get 字符串并导致服务器崩溃)

Do not EVER do this. This is the direct way for the SQL injection (for example any user can insert the DELETE request to the get string and crash your server)

萌面超妹 2024-09-08 08:17:42

您可以使用 java.net.URLEncoder< /code>为此。

param = URLEncoder.encode(param, "UTF-8");

也就是说,整个想法是有漏洞的,并且很容易受到攻击。人们可以轻松地泄露 URL 并手动向其发送 DELETE FROM p 。而是将命令作为参数发送,而不是完整的 SQL 查询。在服务器端保留并隐藏 SQL 查询。

You can use java.net.URLEncoder for this.

param = URLEncoder.encode(param, "UTF-8");

That said, the whole idea is leaky and very prone to attacks. One could easily reveal the URL and manually send a DELETE FROM p to it. Rather send commands as parameters, not complete SQL queries. Keep and hide the SQL queries in the server side.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文