Можно ли сфальсифицировать сессию? - PullRequest
5 голосов
/ 09 декабря 2008

Мне нужно проверить весь код asp, чтобы предотвратить внедрение SQL.

Должен ли я тоже проверять объект сеанса?

Как можно захватить сеанс?

Спасибо !!

Ответы [ 4 ]

3 голосов
/ 09 декабря 2008

Сессия может быть похищена. Если я правильно помню, Classic ASP поддерживает только идентификатор сеанса на основе файлов cookie. Если кто-то сможет украсть этот файл cookie (прослушивание), он сможет получить тот же сеанс, что и законный пользователь.

Стоит ли проверять объект сеанса тоже? это зависит от. Если вы можете быть уверены, что весь объект, сохраненный в сеансах, является «безопасным» (вход был очищен), то вы можете пропустить сеанс. Если где-то в вашем приложении вы получаете данные из небезопасного источника и помещаете их в объект Session, то вы также должны проверить их.

3 голосов
/ 09 декабря 2008

Чтобы избежать внедрения SQL, используйте параметризованные запросы вместо построения запросов SQL путем объединения строк. Угон сессии - совершенно другая тема. Это может быть затруднено путем изменения файла cookie сеанса с каждым запросом, и полностью исключено с помощью HTTPS. Связанная (и более крупная) проблема заключается в подделке межсайтовых запросов (найдите ее).

1 голос
/ 11 декабря 2008

Переменные сессии хранятся в памяти на сервере. На клиенте хранится только идентификатор cookie. Нет необходимости беспокоиться о переменных в сеансе, если они не получены от клиента. Однако во многих случаях проще проверить все переменные, переданные в базу данных для внедрения SQL.

1 голос
/ 09 декабря 2008

Ну, вам действительно нужно защитить входные данные пользователя. Таким образом, вопрос, который вы должны задать себе: «Получены ли эти данные из пользовательского ввода?» Если это так, вы должны использовать параметры sql.

В более широком масштабе, и учитывая, что у вас есть отдельные методы и классы для доступа к данным, вы должны использовать параметры sql для каждого текстового параметра, который вы предоставляете вашему sql. В этом сценарии параметры sql на самом деле не нужны, потому что если вы получите число в качестве параметра метода, то это никак не повлияет на внедрение SQL.

Однако, если вы сомневаетесь, используйте параметры sql.

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