Удаление браузером + из параметра запроса - PullRequest
0 голосов
/ 10 мая 2010

Я пытаюсь передать строку запроса SQL из Java-апплета в сервлет в качестве параметра.

Проблема в том, что в Апплете я что-то говорю: sql = select * from p, где (+ p = 1)

Результирующий параметр sql в сервлете имеет вид sql = select * from p, где (+ p = 1).

Значит кто-нибудь знает, как запретить браузеру удалять символ + из параметров?

Есть ли escape-символ?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 10 мая 2010

Для этого вы можете использовать java.net.URLEncoder.

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

Тем не менее, вся идея протекает и очень подвержена атакам. Можно легко раскрыть URL и вручную отправить DELETE FROM p на него. Скорее отправьте команды в качестве параметров, а не завершите запросы SQL. Сохраняйте и скрывайте SQL-запросы на стороне сервера.

3 голосов
/ 10 мая 2010

НИКОГДА не делайте этого. Это прямой способ внедрения SQL-кода (например, любой пользователь может вставить запрос DELETE в строку get и завершить работу сервера)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...