|
|
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Есть форма ввода данных для поиска по сайту, какой самый надёжный способ для того, чтоб нельзя было в неё вводить данные типа: <script>alert("Я злой хакер!8)");</script> А то сейчас у меня в форму такие данные вводятся вызывая при этом сбой в работе JS скриптов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 13:14 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Gororкакой самый надёжный способ для того, чтоб нельзя было в неё вводить данные типа:заменять спецсимволы html на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 13:23 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Яростный МечGororкакой самый надёжный способ для того, чтоб нельзя было в неё вводить данные типа:заменять спецсимволы html на сервере. Ну это тоже конечно, но у меня прежде чем добраться до сервера, данные сперва по js скриптам бегают, ну всякие транслиты, обрезания лишнего, фильтры и тд. (для снятия лишней нагрузки на сервер) и вот в них и происходит сбой. Мне желательно сразу данные из input "обезвредить" и потом уже с ними работать и отправлять на сервер. Как можно это реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 13:48 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
GororКак можно это реализовать?заменять угловые скобки и амперсанд на их спецсимволы. Код: javascript 1. теперь эту строку можно будет воткнуть на страницу через innerHTML (ты ведь так делаешь?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 13:53 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Яростный МечGororКак можно это реализовать?заменять угловые скобки и амперсанд на их спецсимволы. Код: javascript 1. теперь эту строку можно будет воткнуть на страницу через innerHTML (ты ведь так делаешь?) Да, в конечном итоге данные выводятся через innerHTML А как мне ещё от круглых скобок избавиться? Я добавил: Код: javascript 1. заменяю в слове script "c" англискую на "c" русскую (так просто для надёжности)) Ещё убрал (;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 14:23 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
GororА как мне ещё от круглых скобок избавиться?зачем? экранировать надо только угловые скобки и амперсанд. остальное смысла не имеет. Goror Код: javascript 1. а это вообще нафига? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 14:32 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Яростный МечGororА как мне ещё от круглых скобок избавиться?зачем? экранировать надо только угловые скобки и амперсанд. остальное смысла не имеет. Goror Код: javascript 1. а это вообще нафига? ) Не знаю.. у меня что-то сбой даёт вот такой ввод: <script>alert(111);</script> убираю "(" и работает нормально, то есть: <script>alert111);</script> ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 14:53 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Goror, может для надежности было бы лучше весь <script>..</script> выкусывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 14:57 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-Goror, может для надежности было бы лучше весь <script>..</script> выкусывать? Может быть. А это как? Мне в принципе нужно сохранять исходный вид текста, но только делать его "без обидным" для JS скриптов. А щас проверил, у меня чисто alert(1); вызывает сбой, а func(1); к примеру не даёт сбой. То есть служебная функция JS даёт сбой... Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:03 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Goror, Код: javascript 1. 2. 3. 4. както кривовато :) но вроде работает я бы лучше посмотрела в сторону готового решения по валидации данных хотя бы как сделано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:17 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
поправочка:) лишку обрезала var out_text = inp_text.substr(0, pos1)+inp_text.substr(pos2+"</script>".length) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:19 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-, ну и var pos2; :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:21 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-Goror, Код: javascript 1. 2. 3. 4. както кривовато :) но вроде работает я бы лучше посмотрела в сторону готового решения по валидации данных хотя бы как сделано Будем проверять! ::)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:50 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Goror, таких <script></script> может быть не одна штука ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:58 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-Goror, таких <script></script> может быть не одна штука Неужели нет в js каких нибудь спец функций как в php к примеру htmlspecialchars и тд? Чтоб без отказано и в одну строчу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 16:55 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Goror, а тебе уже сказали - на сервере, все равно отправлять туда данные, а если пользователь скрипты отключил? все эти проверки отвалятся не надо серверу жизнь облегчать, пусть пашет, он железный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:08 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-Goror, а тебе уже сказали - на сервере, все равно отправлять туда данные, а если пользователь скрипты отключил? все эти проверки отвалятся не надо серверу жизнь облегчать, пусть пашет, он железный Ну до сервера нужно данные довести, а если у меня будет скрипт сбой давать до отправки данных, что делать тогда? У меня он поэтапно работает, сперва отслеживает ввод данных, затем транслейт функции, затем обрезка лишнего, фильтры и тд и тп. И это всё на JS. А потом уже на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:20 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Goror, Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. открой эту страничку с включенным джаваскриптом и выключенным, данные у тебя все равно уйдут на сервер, то есть на сервере полюбому нужно предусмотреть проверку данных,транслит, и все такое, а зачем двойная работа? я конешно утрирую, без джаваскриптов сейчас уже наверное и сайтов работающих не осталось :) ну мало :), но обрабатывать входящие данные на сервере прийдется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:42 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-Goror, Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. открой эту страничку с включенным джаваскриптом и выключенным, данные у тебя все равно уйдут на сервер, то есть на сервере полюбому нужно предусмотреть проверку данных,транслит, и все такое, а зачем двойная работа? я конешно утрирую, без джаваскриптов сейчас уже наверное и сайтов работающих не осталось :) ну мало :), но обрабатывать входящие данные на сервере прийдется Ну тут в "лобовую", при нажатии кнопки save, данные через GET запрос, прям в URL строке передаются, а моя форма ввода работает через асинхронные передачи данных, то есть я могу и не менять URL. Ну и на счёт "всю работу отдавать серверу". Ну можно и так, но зачем гонять десятки лишних запросов, когда можно обходиться одним?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 17:55 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Goror, я твоей задачи не знаю, сужу по тому што в ветке написано: скрипты ты вырезал, сделай ещё обработку ошибок try ... catch ..., чтобы скрипты не падали одной функции, чтобы обезвредить входящие данные, в джаваскрипте помоему нет, у всех разное представление о вредных и полезных данных, все это имхо, я в общемто новичок, меня не слушай слушай старших камрадов :) удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 18:12 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-у всех разное представление о вредных и полезных данных А что там долго думать, если вводимые пользователем данные, взаимодействуют с скриптами и тд, нарушая при этом их функциональность и создавая потенциальную угрозу, значит данные вредные:) Ежели не мешают работе сервера, не грузят его и тд. Значит полезные данные!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 19:02 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Goror, по твоей логике все входные данные вредны :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 19:12 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-Goror, по твоей логике все входные данные вредны :) Почему все?) Я ведь написал (те которые взаимодействуют с скриптами, нарушая их работу!) Если к примеру мне в форму введут таймер с интервалом 1 мили.сек и будут отправлять запросы серверу или что-то подобное) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 19:19 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
Goror, но они же грузят сервер :) ну ладно это все лирика для валидации данных на клиенте можно потрогать например jquery.validate.js, но вообще для валидации данных подход другой - данные не чистятся за пользователем, а проверяются, не прошли проверку - не отправляются, пусть сам вводит корректные данные на хабре можно в частности статьи поискать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 19:33 |
|
||
|
[JS] Обезопасить поле ввода INPUT, защита от инъекций
|
|||
|---|---|---|---|
|
#18+
-k2-Goror, но они же грузят сервер :) ну ладно это все лирика для валидации данных на клиенте можно потрогать например jquery.validate.js, но вообще для валидации данных подход другой - данные не чистятся за пользователем, а проверяются, не прошли проверку - не отправляются, пусть сам вводит корректные данные на хабре можно в частности статьи поискать Я редко пользуюсь jquery скриптами, они конечно удобные, но довольно массивные библиотеки, + сложно что-то поменять в структуре (даже незначительно) p.s мне легче самому написать нужную функцию, при этом она будет в 10-100 раз меньше готовых библиотек) Ну это чисто мой подход) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 19:57 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38615276&tid=1447179]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 496ms |

| 0 / 0 |
