Как я могу создать дополнительную защиту для передачи переменных через URL?[JavaScript] - PullRequest
0 голосов
/ 17 февраля 2012

Я использую переменную, проходящую через URL (то есть ".derp.html? Name = derp? Lname = herp") во всплывающее окно (которое использует эти параметры для предварительного заполнения информации на странице). Хотя эти страницы являются внутренними, я хочу создать больше безопасности. Я не хочу, чтобы кто-то печатал собственную ссылку и отправлял форму с поддельными значениями.

Я думал о том, чтобы запустить функцию после открытия ссылки, которая открывает всплывающее окно и отправляет параметры через переменные в новое окно, а не через URL. Тем не менее, мне по-прежнему нужно отправлять значения в функцию сценария Java ...

Что-нибудь еще, что я могу сделать, чтобы быть более безопасным?

РЕДАКТИРОВАТЬ: Позвольте мне тогда перефразировать ... Это не публично, это внутреннее. Я не ожидаю, что пользователи попытаются взломать систему для создания поддельных форм.

Я не могу выполнить проверку на стороне сервера, потому что я работаю с очень старыми методами, такими как управление табличными данными в IE. Нет реальной базы данных для проверки чего-либо.

Ответы [ 3 ]

2 голосов
/ 17 февраля 2012

У вас есть два варианта

1) Вместо использования метода GET (отправка параметра в URL) используйте метод POST, и параметры больше не будут отображаться в HTML URL, и вы можете сделать это с помощью Javascript. Тем не менее, человек, который хочет отправить ложные значения на ваш сервер, все еще может это сделать, но это немного сложнее.

2) Создайте хеш-функцию (код Javascript), которая кодирует все параметры перед отправкой URL и декодирует их при получении на стороне сервера. http://en.wikipedia.org/wiki/Hash_function

В любом случае, это не обеспечит вам 100% безопасности, и все же вы должны выполнить проверку параметров на стороне сервера.

2 голосов
/ 17 февраля 2012

Вы можете POST значения, вместо добавления их к URL. Это то, для чего нужны формы HTML. Например:

<form action="derp.html" method="POST" target="myNewWindow">
    <input type="hidden" value="derp" name="name"/>
    <input type="hidden" value="derp" name="lname"/>
    <a href="#" onclick="window.open("myNewWindow");this.parentNode.submit()">Click to open in a new window</a>
</form>
1 голос
/ 17 февраля 2012

вы можете изменить его на пост-запрос ... но это все, что вы можете сделать, если логика лицевая сторона ... кроме того, чтобы запутать имена переменных.

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