Я пытаюсь создать страницу 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');
}
});
NoCatSplash не поддерживает аутентификацию. Любой пользователь может просто обойти вашу аутентификацию, вручную разместив на http://10.0.0.1:5280/
Если вы серьезно относитесь к аутентификации, вам следует использовать другой метод, например, использование сервера Radius. Его можно даже установить на самом маршрутизаторе, если у него достаточно хорошее оборудование для его поддержки.