Ошибкадоступ Запрещен: Возможна Csrf-Атака


#1

Пытаюсь задать в способе доставки цену для определенного города. Сохраняю - выдает “ОшибкаДоступ запрещен: Возможна CSRF-атака” в всплывающем сообщении.



Остальное в норме.



Новые способы создаю. После такого же алгоритма, выдает то же самое.


#2

[quote name=‘7regtw’ timestamp=‘1435960600’ post=‘221579’]

Пытаюсь задать в способе доставки цену для определенного города. Сохраняю - выдает “ОшибкаДоступ запрещен: Возможна CSRF-атака” в всплывающем сообщении.



Остальное в норме.



Новые способы создаю. После такого же алгоритма, выдает то же самое.

[/quote]



Интересненько.



Можете мне в личку скинуть доступ временный в админку.


#3

[color=#282828][font=arial, verdana, tahoma, sans-serif]CSRF-атака у нас такое бывает когда 3 разных человека под одним аккаунтом с разных айпи[/font][/color]


#4

а 2 человека под одним аккаунтом с разных IP не вызывают события?


#5

[quote name='7regtw' timestamp='1436014014' post='221606']

а 2 человека под одним аккаунтом с разных IP не вызывают события?

[/quote]



могут, это надо смотреть


#6

Вам нужно увеличить “max_input_vars” в настройках php (php.ini)



Эта настройка отвечает за максимальное количество полей обрабатываемой формы.



Дело в том, что у Вас много пунктов назначения, а на каждый пункт назначения можно задавать стоимость с разными зависимостями (зависимость от цены, веса, количества)


#7

Никак не связано с количеством админов.



Просто превышено количество полей, специальное поле 'security_hash' не влезает и не проходит проверка по безопасности.



Создал задачу, чтобы при превышении количества полей выдавалось объективное уведомление.


#8

Изменили на хостинге [color=#282828][font=arial, verdana, tahoma, sans-serif]max_input_vars и в suhosin также. Все равно вылазит ошибка.[/font][/color]



[color=#282828][font=arial, verdana, tahoma, sans-serif]Как узнать сколько полей отправляется?[/font][/color]


#9

[quote name='7regtw' timestamp='1436183758' post='221753']

Изменили на хостинге [color=#282828][font=arial, verdana, tahoma, sans-serif]max_input_vars и в suhosin также. Все равно вылазит ошибка.[/font][/color]



[color=#282828][font=arial, verdana, tahoma, sans-serif]Как узнать сколько полей отправляется?[/font][/color]

[/quote]



Посчитать $_REQUEST.



Я для теста ставил 10000 и всё прошло, хотя это много.



Как вариант, если используется только зависимость по Цене , то вырезать из шаблона другие зависимости. Когда я убирал Зависимость по весу и количеству, то отправка тоже проходила. Значит где то 4000 полей для всех зависимостией.


#10

Сейчас стоит 10 000. Буду шаблон ковырять.


#11

[quote name='7regtw' timestamp='1436185279' post='221760']

Сейчас стоит 10 000. Буду шаблон ковырять.

[/quote]



/design/backend/templates/views/shippings/components/rates.tpl

[quote name='7regtw' timestamp='1436185279' post='221760']

Сейчас стоит 10 000. Буду шаблон ковырять.

[/quote]



Я попросил переделать на Ajax переключатели или добавить валидатор изменения полей, чтобы не сразу вся форма отправлялась, но это не быстро.


#12

Я думаю, что Ajax для любых административных настроек будет самое то. Как настройки в Chrome, например. Без кнопки “Сохранить”.


#13

[quote name=‘7regtw’ timestamp=‘1436186967’ post=‘221765’]

Я думаю, что Ajax для любых административных настроек будет самое то. Как настройки в Chrome, например. Без кнопки “Сохранить”.

[/quote]



Просто сейчас, Вы можете для всех городов сразу задать цену и один раз нажать “Сохранить”, там несколько раз нужно будет нажимать, или будут подгружаться формы только для выбранных вкладок.


#14

Клиенту вываливается все в том же виде (грубо говоря). Каждое изменение формы сразу передается в базу и записывается. Например, по событию “[color=#000000][font=verdana, helvetica, arial, sans-serif][size=3]onchange” [/size][/font][/color]для radio или check “onblur” для input или text.

Я это имел ввиду.

Поэтому не нужна submit.


#15

[quote name=‘7regtw’ timestamp=‘1436187963’ post=‘221768’]

Клиенту вываливается все в том же виде (грубо говоря). Каждое изменение формы сразу передается в базу и записывается. Например, по событию “[color=#000000][font=verdana, helvetica, arial, sans-serif][size=3]onchange” [/size][/font][/color]для radio или check “onblur” для input или text.

Я это имел ввиду.

Поэтому не нужна submit.

[/quote]



Нет, такого механизма нет (я про onchange) , возможно можно повесить событие на переключение вкладок, переключил пункт самовывоза, данные улетели.


#16

Какая собственно разница на какое событие повесить запрос Ajax? Не нашел ограничений.



Данные могут улетать и прилетать хоть при вводе каждого символа. (яндекс, гугл)



Может я чего недопонимаю…


#17

[quote name='7regtw' timestamp='1436190880' post='221777']

Какая собственно разница на какое событие повесить запрос Ajax? Не нашел ограничений.



Данные могут улетать и прилетать хоть при вводе каждого символа. (яндекс, гугл)



Может я чего недопонимаю…

[/quote]



Яндекс, гугл может, да, однако на минисерверах клиентов вскипит всё.



Есть встроенные в ядро функции, которые просто блокируют поля которые не изменены, просто их не применили на этой странице.


#18

а они вскипать не будут, т.к. обратно к клиенту, в принципе только статус самого запроса (удачно/неудачно, чтобы вывести если что ошибку записи, например), а туда только по событию запрос к базе с одним полем. Собственно, ни трафика, ни сложных sql в этом механизме нет.

Поправьте, если не так.


#19

Это я опять про onblur и oncheck, а не про посимвольный ввод.


#20

[quote name='7regtw' timestamp='1436191621' post='221782']

а они вскипать не будут, т.к. обратно к клиенту, в принципе только статус самого запроса (удачно/неудачно, чтобы вывести если что ошибку записи, например), а туда только по событию запрос к базе с одним полем. Собственно, ни трафика, ни сложных sql в этом механизме нет.

Поправьте, если не так.

[/quote]



Оу, я думаю отдел архитектуры найдёт правильное решение, не я буду это делать.



У нас есть встроенная валидация форм перед отправкой, можно просто отправлять только изменённые поля, нужно будет добавить всего 1 класс для формы и всё.