используя linq to sql и HtmlEncode - PullRequest
0 голосов
/ 16 июля 2009

Я использую linq-to-sql для загрузки и сохранения данных в базу данных. Поскольку большая часть данных для сохранения или загрузки является пользовательским вводом и, чтобы избежать всех возможных рисков сохранения необработанных данных, я решил HtmlEncode ввода. Вот краткое изложение того, что я делаю

  1. Кодировать ввод перед сохранением его в базе данных.
  2. Расшифруйте ввод, чтобы иметь возможность манипулировать необработанными данными.
  3. повторно закодировать ввод для отображения пользователю.

Проблема в том, что мне пришлось создать другой бизнес-объект для преобразования данных, которые я получаю из базы данных, в фактические необработанные данные, введенные пользователем, что сделало мой бизнес-объект linq несколько бесполезным.

Я что-то не так делаю? Действительно ли мне нужно преобразовать данные на пути к базе данных, если я использую ling в sql?

Ответы [ 2 ]

4 голосов
/ 17 июля 2009

Звучит так, как будто вы должны хранить необработанные данные в базе данных, а затем всегда кодировать их, прежде чем показывать их пользователю. Вам не нужно беспокоиться о SQL-инъекциях, когда вы используете LINQ to SQL, поскольку он использует параметризованные запросы за кулисами.

1 голос
/ 18 июля 2009

Просто сохраните необработанный HTML-код в своей базе данных и используйте HTMLEncode () (или, что еще лучше, метод HTMLEncode () библиотеки анти-перекрестных сценариев сайта Microsoft), когда вы отображаете его публично.

http://www.microsoft.com/downloads/details.aspx?FamilyId=051ee83c-5ccf-48ed-8463-02f56a6bfc09&displaylang=en

...