ASP защита паролем улучшение - PullRequest
0 голосов
/ 10 января 2012

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

Вот код:

<%

needAuthentication = True

If Request.Form.Count > 0 Then 
    If Request.Form("username") <> "jon" Or Request.Form("password") <> "secret" Then
        ' Redirect to another URI
        Response.Redirect("/")
        Response.End
    End If
    needAuthentication = False
End If

%>
<html>
<body>
<%

If needAuthentication Then

%>
<form method="post" action="thenameofthepage.asp">
  <div>Username: <input type="text" name="username" /></div>
  <div>Password: <input type="text" name="password" /></div>
  <div><input type="submit" value="Submit" /></div>
</form>
<%

Else

%>
<p>Page content here</p>
<%

End If

%>
</body>
</html>

Два вопроса: 1) Как это можно улучшить, чтобы при сбое пароля он вызывал окно с предупреждением «Ошибка входа» и сбрасывал форму? 2) Насколько это небезопасно? Существуют ли методы ASP для повышения безопасности?

Несколько заметок: База данных не используется - это просто страница, защищенная одним глобальным паролем. И, если вы еще не могли сказать, мои навыки ASP не существуют. Заранее спасибо.

ОБНОВЛЕНИЕ: (предупреждение работает при неудачном входе в систему, но содержимое страницы все равно загружается)

<%
needAuthentication = True
authenticationFailed = False

If Request.Form.Count > 0 Then 
    If Request.Form("password") <> "secret" Then
        authenticationFailed = True
    End If
    needAuthentication = False
End If

%>


<html>
<body>

<%
If needAuthentication Then

%>

<form method="post" action="passwordtest.asp">
  <div>Password: <input type="text" name="password" /></div>
  <div><input type="submit" value="Submit" /></div>
</form>

<%
Else

%>

<p>Page content here</p>

<%
End If

%>

<%
If authenticationFailed Then

%>

<script type="text/javascript">
  alert("Invalid login");
</script>

<%
End If
%>

</body>
</html>

1 Ответ

0 голосов
/ 10 января 2012

Вы бы сделали что-то вроде:

authenticationFailed = False

А затем в разделе Else вашего утверждения установите authenticationFailed = True.

Тогда на вашей странице есть что-то вроде:

<%

If authenticationFailed Then

%>
<script type="text/javascript">
  alert("Invalid login");
</script>
<%

Безопасность имеет много элементов. Предполагая, что вы можете хранить пароль в секрете, и предполагая, что никто другой не сможет заполучить этот файл, тогда, пока вы заходите на сайт с использованием HTTPS, у вас все будет в порядке :) - обратите внимание, что там было много «если».

Если вы хотите узнать больше о безопасности, я бы порекомендовал поискать эту тему. Безопасность напрямую связана с технологией, которую вы используете, хотя различные технологии пытаются упростить ситуацию по-своему.

Да, и еще одна вещь - этот метод входа требует, чтобы вы входили в систему каждый раз, когда вы хотите получить доступ к защищенной странице. Он не помнит этого, как вы могли ожидать. Вам нужно было бы исследовать сессии для этого - эта тема сама по себе: http://www.w3schools.com/ASP/asp_sessions.asp.

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