Как можно безопасно заполнить веб-форму и отправить ответ по электронной почте? - PullRequest
0 голосов
/ 27 апреля 2009

Я пытаюсь научиться защищать веб-форму. Возьмите простой пример, контактную форму, имя, телефон, электронную почту. Я нашел это:

Методы безопасной электронной почты

Но я не знаю, правильный ли это путь. Это не виртуальный хостинг, если это важно, и у меня есть полный доступ ко всему. В настоящее время я связан с IIS 6 и Windows 2000, поэтому мне, вероятно, потребуется использовать asp.net 2.0, но при необходимости он может использовать другие языки (которые могут работать в IIS.)

Я хочу иметь возможность заполнить форму и отправить ее по электронной почте / отправить форму на соответствующий следующий шаг (я не знаю, что это.)

Кроме того, я использую порт 443 для порта формы?

РЕДАКТИРОВАТЬ: Просто так я ясно. Сожалею. Мне нужен весь процесс в безопасности. Это не просто безопасное получение начальной формы. Мне нужны данные из формы надежно, как только они введены.

РЕДАКТИРОВАТЬ: Я не был достаточно ясно. Как только я получу свои данные от пользователя, которые я получу через 443 и SSL, я хочу, чтобы эти данные были отправлены мне через Интернет по электронной почте. Возможно ли сделать это безопасно? Или просто лучше иметь мой SSL, получить данные поверх него, а затем дать пользователю, который просматривает эту информацию (секретарю, что угодно), использовать тот же сокет SSL, только с приложением просмотра?

Любая помощь приветствуется. Спасибо.

Ответы [ 5 ]

2 голосов
/ 27 апреля 2009

Если у вас настроен SSL для этой страницы, это большая часть настоящей работы PITA. Пользователь может подключиться к порту 443, все введенные данные будут защищены.

Однако, что большинство людей не ответили , так это передача данных по электронной почте, большая часть из которых не может быть гарантированно безопасной - [Я не знаю, насколько достоверна эта ссылка, но Тем не менее, стоит прочитать: http://ask -leo.com / just_how_secure_is_email_anyway.html ], поэтому вам придется самостоятельно шифровать данные с использованием некоторой формы шифрования. Возможно шифрование с открытым / закрытым ключом - возможно, RSA или подобное. Зашифруйте данные с помощью открытого ключа, прикрепите его к электронному письму и отправьте по почте. Получатель электронной почты затем использует закрытый ключ для расшифровки данных.

Если вы используете функцию mailto формы, самое время испачкать руки, так как вам, вероятно, понадобится кое-что написать. Насколько мне известно [и кто-то, пожалуйста, исправьте меня, если я ошибаюсь], IIS не имеет никакой возможности шифровать данные, отправляемые по электронной почте - в основном потому, что программа получения электронной почты, скорее всего, не сможет расшифровать данные Это означает, что вам нужно указать алгоритм шифрования, любые ключи, метод вложения и т. д.

Есть , есть множество библиотек, которые вы можете использовать для этого. Вы не упомянули, программируете ли вы это самостоятельно или нет, и не подразумеваете ли вы язык программирования, но, поскольку вы, похоже, используете технологии Microsoft, я укажу вам на сайт Microsoft в качестве ссылки:

http://msdn.microsoft.com/en-us/library/5e9ft273.aspx

Надеюсь, это должно направить вас в правильном направлении. Я думаю, вам нужно, чтобы сайт проанализировал введенные данные, зашифровал их с помощью открытого ключа и прикрепил к электронному письму.

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

1 голос
/ 27 апреля 2009

Вам необходимо купить сертификат SSL и настроить IIS для использования этого сертификата и обслуживать страницы только через соединение SSL. Это будет означать, что все соединения с этим сайтом защищены от браузера пользователя до вашего сервера.

0 голосов
/ 27 апреля 2009

Защита формы - это всегда опасное задание, но первое, что вам нужно сделать, это добавить компонент CAPTCHA, чтобы форма не могла использоваться сканерами уязвимостей или ботами, чтобы попытаться найти любую возможную ваш код или на вашем сервере. Таким образом, вы не будете иметь тысячи электронных писем из вашей формы в почтовой папке получателя.

Также попробуйте санировать входные данные, прежде чем что-либо с ними делать, это предотвратит внедрение SQL, XSS и другие. Некоторые языки, такие как ASP.NET, выполняют эту задачу просто по умолчанию, но если вам нужно ее кодировать, это не такая сложная задача. Есть больше методов, начинающихся с этих двух, и 95% работы будут выполнены.

Если вам нужно другое предложение, дайте мне знать.

0 голосов
/ 27 апреля 2009

Вам нужен сертификат SSL для вашего сайта. Для обеспечения безопасности ваших данных, убедитесь, что ваша форма действия https://

0 голосов
/ 27 апреля 2009

SSL-сертификат будет работать для вас. Вам не обязательно покупать его, потому что они могут быть «самозаверяющими», хотя ваши пользователи увидят всплывающее окно с сообщением о том, что сертификат недействителен. Но даже если сертификат недействителен, он все равно будет обеспечивать то же шифрование, что и подписанный сертификат.

Если вы используете протокол https, клиентский веб-браузер автоматически попытается подключиться к веб-серверу через порт 443.

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