Недавно я узнал, что чересстрочные кодировки вызывают риск безопасности при правильной проверке. Из ответа в предыдущем сообщении:
Например, символ <обычно представляется в виде байта 0x3C, но может быть также представлен с использованием последовательности UTF-8 с 0xC0 0xBC (или даже более избыточных последовательностей из 3 или 4 байта).
- размещение в группе от имени пользователя с использованием API-интерфейса facebook
- mySql - создание соединения с использованием списка значений, разделенных запятыми
- Как пройти результат mysql дважды?
- Symfony2 / Twig: создать альтернативный абсолютный путь URL для использования с CDN?
- Повторяющиеся символы регулярного выражения Php
А также:
Если вы берете этот вход и обрабатываете его в инструменте, базирующемся на Unicode-забывающем байте, тогда любой шаг обработки символов, используемый в этом инструменте, может быть уклонен.
Это означает, что если я использую htmlspecialchars
для строки, использующей перекрывающуюся кодировку, то выход может содержать теги. Я также предполагаю, что вы можете отправлять похожие символы (например, "
или ;
)), которые также могут использоваться для инъекций SQL.
Возможно, это я, но я считаю, что это риск безопасности, относительно мало кто принимает во внимание и даже знает об этом. Я кодирую в течение многих лет, и только сейчас это выясняю.
Во всяком случае, мой вопрос: какие инструменты я могу использовать для отправки данных с чересстрочными кодировками? Люди, знакомые с этим риском: как вы проводите тесты на веб-сайтах? Я хочу, чтобы на мои сайты была добавлена куча перекрывающихся символов, но я понятия не имею, как это сделать.
В моей ситуации я в основном использую PHP и MySQL, но то, что я действительно хочу знать, – это инструменты тестирования, поэтому я думаю, что внутренняя ситуация не имеет большого значения.