Я нахожусь в процессе записи формы входа в систему/регистра для моего веб-сайта MVC и сталкиваюсь с проблемой относительно безопасности и Ajax. Кажется, что все более популярные сайты используют JavaScript для обработки логинов и многих от не https URL (www.giantbomb.com и www.gametrailers.com для именования два). Я задаюсь вопросом, существует ли способ для меня сделать что-то подобное, но также и использовать SSL.
Я читал в других сообщениях, что это возможно, если JavaScript выполнялся от защищенной страницы, но если бы это не опция, то, как я пошел бы о, делают транзакцию максимально безопасной?
Спасибо за внимание!
Боюсь, но у меня нет для вас положительного ответа. НЕ полагайтесь на JS в плане безопасности. Для злоумышленника не составит труда заменить ваш "защитный JS" на вредоносный, если вы отправляете ваш "защитный JS" по HTTP в открытом виде. Вредоносный JS может передать учетные данные пользователя злоумышленнику, а затем внедрить ваш "защитный JS" обратно в браузер пользователя. Конечный пользователь и ваш веб-сервис/приложение даже не узнают, что кто-то перехватил учетные данные пользователя. Под "защитным JS" я подразумеваю любую реализацию JS - как асимметричную, так и симметричную.
Этот вопрос уже рассматривался на StackOverflow ранее. Посмотрите здесь один пример.
Большой проблемой при подходе без SSL является атака "человек посередине". Обойти ее невозможно.
Я бы не рекомендовал этого, потому что даже если вы сделаете его безопасным, он будет посмотрите на пользователя так, как будто это не так. Пользователи обучены искать замок в веб-браузере, и если его там нет, не верьте ему.
(Я уверен, что кто-то укажет, что я переоцениваю образование пользователей, и да, не все пользователи знают это, но многие знают.)
Думаю, мне просто нужно было немного мотивации или что-то в этом роде. Вот некоторые материалы, которые могут вам пригодиться:
Как упоминает Джордж Мариан, вы можете использовать шифрование с открытым ключом на основе JS. Доступно несколько реализаций . Но вы должны знать, что это не замена SSL. Основная трудность заключается в безопасном распространении открытого ключа. Вы можете повысить безопасность в отношении пассивного подслушивания, но если вы не можете безопасно передать ключ, активные атаки MITM (человек посередине) все еще возможны.
Также имейте в виду, что для его работы должен быть включен JavaScript, поэтому вам понадобится резервный текст в виде открытого текста.
Если вам нужно обеспечить полную безопасность, используйте SSL.