Intereting Posts
Как предотвратить изменение размера таблицы в PDF с помощью mPDF и PHP? Отправить unicode emoji с помощью PHPMailer PHP: разделите строку на запятую, но НЕ, когда между скобками или кавычками? Могу ли я использовать точку и обратную косую черту вместо dirname ()? Как обновить карту, когда отображение карты основано на долготе и широте, т.е. выборка из базы данных Где разница между self и $ this-> в PHP-классе или методе PHP? Как узнать количество семян / сверстников для торрента в PHP PHP – слияние массивов Как люди обрабатывают постановку системы управления контентом? Навигация по php-страницам по серийному номеру Добавить пользовательское поле в представлении yii2, которое отсутствует в модели Laravel 5.3 цепной пагинат после фильтра создайте запись mysql, если она не существует, иначе обновите ее Передача данных в памяти на FTP-сервер без использования промежуточного файла Установка расширения PDO_MYSQL PHP на CPanel?

Почему атрибут «NAME» считается небезопасным?

Я передаю HTML-код, созданный пользователем, в базу данных, и я пытаюсь убедиться, что никакого вредоносного кода не передается. Одним из шагов, которые я предпринимаю, является запуск кода через класс HTML_Safe груши для удаления уязвимой разметки. Однако я заметил, что атрибут имени поданных элементов удаляется. Разумеется, когда вы смотрите на исходный код, name является одним из немногих атрибутов, внесенных по умолчанию в черный список:

http://pear.php.net/package/HTML_Safe/docs/latest/HTML_Safe/HTML_Safe.html#var$attributes

В чем опасность, позволяющая пользователям передавать значения для name ? Как значения для name могут использоваться для гнусных целей? Есть предположения? Если нет, у меня возникает соблазн изменить черный список.

Related of "Почему атрибут «NAME» считается небезопасным?"

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

Это позволит кому-то использовать любую возможную обработку Javascript или серверной формы, которую вы можете использовать, ссылаясь на найденный первый атрибут совпадающего name .

Это не просто элементы формы, которые могут использовать name , но они были бы наименее безопасными.

Другая проблема с переопределением заключается в том, что вы используете Javascripts getElementsByName в любой из ваших функций (как указано ниже), вы можете получить функцию, которая не делает то, что вы ожидаете.

Изменить: некоторые исправления и примечание о проблеме getElementsByName (как указано ниже).