Межсайтовый скриптинг в веб-приложениях - PullRequest
1 голос
/ 25 апреля 2011

Мой веб-сайт http://www.imayne.com, кажется, имеет эту проблему, подтвержденную MacAfee.Может кто-нибудь показать мне, как это исправить?(Заголовок)

Это говорит об этом:

Общее решение:

Принимая пользовательский ввод, убедитесь, что вы HTML кодируете потенциально вредоносные символы, если вы когда-либо отображаете данные обратно вclient.

Убедитесь, что параметры и пользовательский ввод очищены, выполнив следующие действия:

Удалите Remove> input и замените на ">"; Удалить 'вход и заменить на "& apos"; Удалить "вход и заменить на" ""; Удалить) вход и заменить на ")"; Удалить (введите и замените на "(";

Мне не удается показать действительный код. Этот веб-сайт показывает что-то еще.

Я не веб-разработчик, но могусделать немного. Я пытаюсь быть PCI-совместимым.

Ответы [ 3 ]

2 голосов
/ 26 апреля 2011

Позвольте мне ответить на ваш вопрос и дать несколько советов. Правильное предотвращение XSS необходимо выполнить путем определения белого списка допустимых значений в точке ввода пользователя, а не черно-черного цвета запрещенных значений. Это должно произойти прежде всего, прежде чем вы начнете думать о кодировании.

Как только вы приступите к кодированию, используйте библиотеку из выбранной вами структуры, не пытайтесь заменить символы самостоятельно. Более подробная информация об этом содержится в OWASP Top 10 для разработчиков .NET, часть 2. Межсайтовый скриптинг (XSS) (не беспокойтесь о ориентации на .NET, концепции согласованы во всех средах) .

Теперь за дружеским советом: получите экспертную поддержку как можно скорее. У вас есть принципиально очевидный рефлексивный недостаток XSS на сайте электронной коммерции, и, основываясь на ваших комментариях на этой странице, вы не хотите заниматься этим самостоятельно. Очевидная природа этого недостатка говорит о том, что у вас, скорее всего, есть и более неясные проблемы на сайте. По твоему собственному признанию, «ты здесь нуб», и ты не собираешься приобретать компетенцию, необходимую для достаточной защиты сайта, такого как эта ночь.

1 голос
/ 25 апреля 2011

Тип изменений, которые вы описываете, часто выполняется на нескольких языках через функцию кодировки HTML. На чем написан сайт. Если это сайт ASP.NET, эта статья может помочь:

http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx

В PHP используйте эту функцию для переноса всего выводимого текста:

http://ch2.php.net/manual/en/function.htmlentities.php

В любом месте, где вы видите эхо (...) или печать (...), вы можете заменить его на:

echo(htmlentities( $whateverWasHereOriginally, ENT_COMPAT));

Взгляните на раздел примеров в середине страницы для других указаний.

0 голосов
/ 25 апреля 2011

Точно следуйте этим шагам, и все готово.Главное, чтобы вы не обращали внимание на то, что пользователь представляет вам как код (HTML, SQL, Javascript или другой).Если вам не удастся правильно очистить входные данные, вы рискуете внедрить скрипт.

Если вы хотите увидеть тривиальный пример этой проблемы в действии, выполните поиск

<span style="color:red">red</span>

вна вашем сайте, и вы увидите, что отображаемый поисковый запрос имеет красный цвет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...