Защита доступа к веб-сайту по паролю

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

Вот как я это делаю, используя 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 или сеанса