Я пытаюсь создать защищенный паролем веб-сайт. Здесь я хочу сделать, если пользователь впервые посетит мой сайт, тогда вам нужно вставить пароль для доступа к моему сайту. В первый раз они ввели пароль, которым они могут свободно обращаться к моему сайту.
Вот как я это делаю, используя javascript
и php
:
<?php if($page == 'index'): ?> <script language="Javascript"> //prompt. var password; var correctPass = "123456"; password = prompt("Enter in the password:",""); if(password == correctPass) { alert('click OK to view this site'); } else { window.location = "http://google.com" } //-> </script> <?php endif; ?>
Это работает, но моя проблема заключается в том, что если пользователь перейдет на страницу индекса, им нужно будет вставить пароль.
может кто-нибудь сказать мне, как я исправить эту проблему. Спасибо.
Не делайте этого в JavaScript. Любой может посмотреть исходный код и посмотреть пароль. Вместо этого выполните проверку пароля в PHP. Затем используйте переменные $_SESSION
чтобы сохранить состояние во время нахождения на вашем сайте. Вы также можете использовать переменные $_COOKIE
для долгосрочного доступа, но в большинстве случаев для доступа к паролю обычно предпочитается просто $_SESSION
.
Альтернативный способ сделать это с вашим веб-сервером. Например, если вы используете Apache, вы можете создать файл .htaccess
в корневом каталоге вашего сайта, чтобы задать имя и пароль. Таким образом, вам даже не нужно ничего кодировать.
Чтобы сделать второй вариант, создайте файл с именем .htaccess в корневом каталоге вашего веб-каталога. В файле поместите это в:
AuthType Basic AuthName "Password Protected Area" AuthUserFile /opt/passwords/.htpasswd Require valid-user
(где / opt / passwords – это местоположение каталога за пределами вашего веб-каталога. Оно может быть где угодно, вы просто хотите убедиться, что он нигде внутри вашего веб-каталога (в противном случае он будет доступен для публичного просмотра)).
В этом каталоге создайте файл с именем .htpasswd. Этот файл будет просто принимать имя пользователя и зашифрованный пароль. Эта страница позволит вам создать свое имя с помощью шифрования пароля: http://www.htaccesstools.com/htpasswd-generator/ . Просто вставьте это в свой файл .htpasswd.
При этом любой пароль, который вы используете, может быть перехвачен, если вы используете только http, а не https, но настройка https немного сложнее, если вы этого еще не сделали.
Это небезопасно. Пользователь может отключить JS.
Один из правильных способов – использовать http auth .
в первую очередь, вы ставите простой пароль в java-скрипт? никогда не делайте этого, а также
if ($ page == 'index')
всегда строится на true, поэтому логика не работает с использованием файлов cookie или сеанса