2015-06-10 3 views
-1

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

Это, как я это сделать с помощью 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; ?> 

Это работает, но моя проблема в том, если пользователь перейти на страницу индекса снова они должны ввести пароль.

может кто-нибудь сказать мне, как я исправить эту проблему. Спасибо.

+0

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

+1

для анонимного пользователя, подумайте о сохранении информации в cookie, потому что у вас нет способа запомнить, какой пользователь вводил пароль, но тогда он будет зависимым от браузера! – Rohit416

+0

@DeepKakkar, могу ли я сделать это без использования базы данных? спасибо – user3733831

ответ

5

Не делайте этого в JavaScript. Любой может посмотреть исходный код и посмотреть пароль. Вместо этого выполните проверку пароля в PHP. Затем используйте переменные $_SESSION, чтобы сохранить состояние во время нахождения на вашем сайте. Вы также можете использовать переменные $_COOKIE для долгосрочного доступа, но в большинстве случаев для доступа к паролю обычно используется только $_SESSION.

Альтернативный способ сделать это с помощью вашего веб-сервера. Например, если вы используете Apache, вы можете создать файл .htaccess в корне вашего сайта, чтобы узнать имя и пароль. Таким образом, вам даже не нужно ничего кодировать.

Чтобы сделать второй вариант, создайте файл с именем .htaccess в корневом каталоге вашего веб-каталога. В файле положить это в:

AuthType Basic 
AuthName "Password Protected Area" 
AuthUserFile /opt/passwords/.htpasswd 
Require valid-user 

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

В этом каталоге создайте файл с именем .htpasswd. Этот файл будет просто принимать имя пользователя и зашифрованный пароль. Эта страница позволит вам создать свое имя с помощью шифрования пароля: http://www.htaccesstools.com/htpasswd-generator/. Просто вставьте это в свой файл .htpasswd.

С учетом этого любой пароль, который вы используете, может быть перехвачен, если вы используете только http, а не https, но настройка https немного сложнее, если вы этого еще не сделали.

+0

Можете ли вы показать мне пример? Спасибо. – user3733831

+0

Какой из этих вариантов вы предпочитаете? (Я добавил альтернативу моему ответу). – kojow7

+0

Второй вариант лучше ... – user3733831

1

Это не безопасно. Пользователь может отключить JS.

Одним из правильных способов является использование http auth.

1

Прежде всего, вы ставите простой пароль в скрипт java ??? никогда не делать, а также

если ($ страница «индекс» ==)

всегда строит к истине, так что логика обыкновение использовать работы печенье или сеанс

Смежные вопросы