Я пытаюсь создать страницу nocatsplash - она ​​использует HTML-код для проверки пароля и перенаправления посетителей, если введен правильный пароль

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

Вот мой текущий рабочий код с простой кнопкой:

Agree to Connect:
<br>
<br>
<form method="post" id="login" action="http://10.0.0.1:5280/">
<input type="hidden" name="accept_terms" value="yes">
<input type="hidden" name="redirect" value="http://www.anderson1216.com/wifi-success.html">
<input type="hidden" name="mode_login">
<input type="submit" value="Accept Terms of Use and Connect">
</form>
<br>
//agreement text here
<br>
<br>
We thank you for your understanding and cooperation.
<br>
<br>
<form method="post" id="login" action="http://10.0.0.1:5280/">
<input type="hidden" name="accept_terms" value="yes">
<input type="hidden" name="redirect" value="http://www.anderson1216.com/wifi-success.html">
<input type="hidden" name="mode_login">
<input type="submit" value="Accept Terms of Use and Connect">
</form>

это простая форма пароля, которую я нашел:

<head>
<script type="text/javascript">
function isValid(){
var password = document.getElementById('password').value;
if (password == "password123")
{alert('Correct!')
else
{alert('Wrong Password')}
}
</script>
</head>

<form name="PasswordField" action="">
Password:
<input type="password" id="password" name="password">
<input type="button" value="Log in" onclick="isValid();">
</form>

Для того, чтобы код работал, первое заявление из первого блока кода должно быть включено где-то, чтобы сообщить маршрутизатору, что человек принял, а затем я хочу, чтобы он перенаправил на другой веб-сайт после того, как он нажмет кнопку. Для правильного пароля оповещение не требуется, только неправильные. Какие-либо предложения?

4 ответа

Я бы СЕРЬЕЗНО советовал не указывать пароль в js!! Это может увидеть любой, кто смотрит на исходный код. Вам необходимо внедрить более безопасную систему паролей с хэшированным и посоленным паролем, который хранится в защищенной базе данных и проверяется с помощью вызова AJAX или PHP.

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

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

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

Я согласился бы с gavrig выше, чтобы перемешать и посолить их для безопасности.

Но если я правильно понял твой вопрос, вот скрипка, которую я собрал, чтобы решить. Я специально смешал jquery и javascript.

Agree to Connect:
<br>
<br>
//agreement text here
<br>
<br>
We thank you for your understanding and cooperation.
<br>
<br>
<form method="post" id="login" action="http://10.0.0.1:5280/">
<input type="password" id="password" name="password">
<input type="hidden" name="accept_terms" value="yes">
<input type="hidden" name="redirect" value="http://www.anderson1216.com/wifi-success.html">
<input type="hidden" name="mode_login">
<input type="submit" value="Accept Terms of Use and Connect">
</form>

$('form').on('submit', function(e){
    e.preventDefault();
  var password = document.getElementById('password').value;
        if (password == "password123")
        {
            this.submit();
        } 
    else
        {
            alert('Wrong Password');
        }

});

https://jsfiddle.net/tL7qcc5n/2/

NoCatSplash не поддерживает аутентификацию. Любой пользователь может просто обойти вашу аутентификацию, вручную разместив на http://10.0.0.1:5280/

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

Другие вопросы по тегам