Как защититься?
- DenisKhomusyak
- Сообщения: 102
- Зарегистрирован: 2015.10.18, 22:45
- Откуда: Sant Tropetz
- Контактная информация:
Как защититься?
Всем привет, и сразу к делу.
Появилась такая проблема, подскажите как гуглить
Не могу понять куда копать, чтобы защититься от изменения атрибутов в полях.
Например есть поле
<input type="text" id="model-value" class="form-control" name="Model[value]" value="1" readonly style="display:none;">
Но если изменить value и послать запрос, это легко обходится. Как на стороне клиента запретить изменять атрибуты?Возможно ли это?Спасибо за внимание)
PS Надеюсь доходчиво обьяснил
Появилась такая проблема, подскажите как гуглить
Не могу понять куда копать, чтобы защититься от изменения атрибутов в полях.
Например есть поле
<input type="text" id="model-value" class="form-control" name="Model[value]" value="1" readonly style="display:none;">
Но если изменить value и послать запрос, это легко обходится. Как на стороне клиента запретить изменять атрибуты?Возможно ли это?Спасибо за внимание)
PS Надеюсь доходчиво обьяснил
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Как защититься?
Невозможно. Только валидировать на сервере.
Нравится Yii? Давайте сделаем его лучше!.
Re: Как защититься?
на стороне клиента забудьте про защиту ... ващу форму переверстают и отправят то что захотят ... а на стороне сервера сценарии спасут ...
- DenisKhomusyak
- Сообщения: 102
- Зарегистрирован: 2015.10.18, 22:45
- Откуда: Sant Tropetz
- Контактная информация:
Re: Как защититься?
Понял, спасибо.caHek2x писал(а):на стороне клиента забудьте про защиту ... ващу форму переверстают и отправят то что захотят ... а на стороне сервера сценарии спасут ...
Есть пример какой нибудь?) Читал про них, но не допер как они в Yii +)
Re: Как защититься?
В Yii так же, как и в PHPDenisKhomusyak писал(а):Понял, спасибо.caHek2x писал(а):на стороне клиента забудьте про защиту ... ващу форму переверстают и отправят то что захотят ... а на стороне сервера сценарии спасут ...
Есть пример какой нибудь?) Читал про них, но не допер как они в Yii +)
- DenisKhomusyak
- Сообщения: 102
- Зарегистрирован: 2015.10.18, 22:45
- Откуда: Sant Tropetz
- Контактная информация:
Re: Как защититься?
Просто еще ни разу не использовал их. Может подскажите с какой нибудь литературы выдернуть или так гуглить да смотреть?)AlexxxT писал(а):В Yii так же, как и в PHPDenisKhomusyak писал(а):Понял, спасибо.caHek2x писал(а):на стороне клиента забудьте про защиту ... ващу форму переверстают и отправят то что захотят ... а на стороне сервера сценарии спасут ...
Есть пример какой нибудь?) Читал про них, но не допер как они в Yii +)
Re: Как защититься?
Да про rules() вам говорят, в них правила валидации на сервере
Re: Как защититься?
Решение - не использовать скрытые поля.
Re: Как защититься?
если вы что-то пишете в скрытое поле, значит вы это откуда-то взяли на стороне сервера. А раз откуда-то взяли на стороне сервера, и это не предназначено для редактирования на клиенте, нет смысла вообще это на клиент тащить.
Re: Как защититься?
Для повышения собственных знаний, вопрос:zelenin писал(а):если вы что-то пишете в скрытое поле, значит вы это откуда-то взяли на стороне сервера. А раз откуда-то взяли на стороне сервера, и это не предназначено для редактирования на клиенте, нет смысла вообще это на клиент тащить.
Как поступать, если обработчик формы единый, а форм несколько?
я пошел по варианту скрытого поля, в котором передается название формы.
Для меня конечно не критично, если кто-то изменит название формы - да и фиг с ним, но если вдруг потребуется что-то более важное?
так же при редактировании элемента в gii генерация идет формы использующей для поиска по ИД, если в админке это не так критично (по крайней мере риск меньше, т.к. предполагаем, админят более ответственные люди), то на основном сайте, есть реальный шанс изменить данные не того элемента.
Я тут как-то думал отказаться от ИД формы в строке, а перейти на guid, который просто так не подобрать, как это сделано у майкрософт в sharepoint, там все через guid ищется.
другого варианта не придумал..
Re: Как защититься?
конкретнее: как определяется значение скрытого поля? модели формы разные или одна модель?kwasti писал(а):Для повышения собственных знаний, вопрос:zelenin писал(а):если вы что-то пишете в скрытое поле, значит вы это откуда-то взяли на стороне сервера. А раз откуда-то взяли на стороне сервера, и это не предназначено для редактирования на клиенте, нет смысла вообще это на клиент тащить.
Как поступать, если обработчик формы единый, а форм несколько?
почему человек, не имеющий права редактировать запись с id = 10 может ее отредактировать? как же rbac?kwasti писал(а):так же при редактировании элемента в gii генерация идет формы использующей для поиска по ИД, если в админке это не так критично (по крайней мере риск меньше, т.к. предполагаем, админят более ответственные люди), то на основном сайте, есть реальный шанс изменить данные не того элемента.
это называется uuid (guid - частный случай).kwasti писал(а):Я тут как-то думал отказаться от ИД формы в строке, а перейти на guid, который просто так не подобрать, как это сделано у майкрософт в sharepoint, там все через guid ищется.
Re: Как защититься?
у меня на странице несколько модальных форм создается (не стал заморачиваться с подгрузкой через скрипт),
в основном это обратная связь.
данные этих форм сохраняются в одну таблицу.
во всех вормах есть некоторые стандартные поля типа name,email, message, subject эти поля пишутся в таблицу в соответствующие поля и происходит оповещение пользователя пиьсмом на емайл, все не стандартные поля (задаются в админке) в формате json я записываю в таблице в одно поле.
чтобы при обработке понимать откуда пришла запись, я добавил скрытое поле в котором и пишу название модальной формы и конечно оно уходит на сторону клиента. т.е. технически мне это сейчас не критично, если кто-то поменяет название формы, то плевать, просто это обращение останется не обработанным, оно и не стоит внимания такое обращение.
по поводу изменить:
может так совпасть что пользователь будет иметь права как на 20-ю запись так и на 10-ю...
т.е. возможно не специально а случайно или еще по какой причин данные элемента с ИД=10 будуть отредактированы, а отправлены на сервер с ид=20.
Теоретически это возможно.
С uuid (в шарике это guid) такая возможность сводится к 0.
в основном это обратная связь.
данные этих форм сохраняются в одну таблицу.
во всех вормах есть некоторые стандартные поля типа name,email, message, subject эти поля пишутся в таблицу в соответствующие поля и происходит оповещение пользователя пиьсмом на емайл, все не стандартные поля (задаются в админке) в формате json я записываю в таблице в одно поле.
чтобы при обработке понимать откуда пришла запись, я добавил скрытое поле в котором и пишу название модальной формы и конечно оно уходит на сторону клиента. т.е. технически мне это сейчас не критично, если кто-то поменяет название формы, то плевать, просто это обращение останется не обработанным, оно и не стоит внимания такое обращение.
по поводу изменить:
может так совпасть что пользователь будет иметь права как на 20-ю запись так и на 10-ю...
т.е. возможно не специально а случайно или еще по какой причин данные элемента с ИД=10 будуть отредактированы, а отправлены на сервер с ид=20.
Теоретически это возможно.
С uuid (в шарике это guid) такая возможность сводится к 0.
Re: Как защититься?
в данном случае смысла о защите говорить нет, т.к. она тут просто не нужна, и оттого, что изменят скрытое поле ровно ничего не изменится.kwasti писал(а):у меня на странице несколько модальных форм создается (не стал заморачиваться с подгрузкой через скрипт),
в основном это обратная связь.
данные этих форм сохраняются в одну таблицу.
во всех вормах есть некоторые стандартные поля типа name,email, message, subject эти поля пишутся в таблицу в соответствующие поля и происходит оповещение пользователя пиьсмом на емайл, все не стандартные поля (задаются в админке) в формате json я записываю в таблице в одно поле.
чтобы при обработке понимать откуда пришла запись, я добавил скрытое поле в котором и пишу название модальной формы и конечно оно уходит на сторону клиента. т.е. технически мне это сейчас не критично, если кто-то поменяет название формы, то плевать, просто это обращение останется не обработанным, оно и не стоит внимания такое обращение.
случайно такого не может быть. специально - может, и uuid здесь не спасет.kwasti писал(а):по поводу изменить:
может так совпасть что пользователь будет иметь права как на 20-ю запись так и на 10-ю...
т.е. возможно не специально а случайно или еще по какой причин данные элемента с ИД=10 будуть отредактированы, а отправлены на сервер с ид=20.
Теоретически это возможно.
Re: Как защититься?
так uuid это же сплошной набор случайных букв и цифр и попасть достаточно сложно в другой uuid, если мы про одно и то же говорим.
сравнивая с шариком нечто подобное генрируется через
сравнивая с шариком нечто подобное генрируется через
Код: Выделить всё
generateRandomString()
Re: Как защититься?
попасть просто - копируем id из грида и подставляем. Напомню, что юзер имеет доступ к редактированию обеих записей. Если он хочет отредактировать другую запись таким извращенным способом, это собственно дело его. Не надо защищать юзера от его привилегий.kwasti писал(а):так uuid это же сплошной набор случайных букв и цифр и попасть достаточно сложно в другой uuid
Аналогично с вашими модальными формами - если он хочет отослать другую форму, вызвав первую, это дело его.
Re: Как защититься?
все так, скопировать может, но это нужно знать откуда копировать...(грида нет)
и исключается вариант случайно изменить цифру и попасть
с вариантом обычного ИД, все записи идут по порядку...и шансов попасть на доступную запись резко возрастает
и исключается вариант случайно изменить цифру и попасть
с вариантом обычного ИД, все записи идут по порядку...и шансов попасть на доступную запись резко возрастает
Re: Как защититься?
ну вы поняли мою мысль: не надо защищаться от того, что юзеру разрешено. Если не хотите, чтобы он редактировал, запретите.kwasti писал(а):все так, скопировать может, но это нужно знать откуда копировать...(грида нет)
и исключается вариант случайно изменить цифру и попасть
с вариантом обычного ИД, все записи идут по порядку...и шансов попасть на доступную запись резко возрастает