2015-11-01 2 views
1

Итак, я создаю этот сайт, который устанавливает переменную sessionstorage «logedIn» истина, когда пользователь успешно входит в систему, как это:Отключить возможность редактировать sessionstorage переменной в консоли

sessionStorage.setItem('logedIn', 'true') 

Эта переменная используется на другим веб-страницам, чтобы узнать, вошел ли пользователь в систему перед показом контента, чтобы пользователи, которые не вошли в систему, не могли получить доступ к веб-странице. Он работает как шарм, но я заметил, что если я вручную наберу код в консоли Chrome Chrome, я могу легко изменить sessionvariable. Это явно не нужно.

Мой вопрос: как я могу решить эту проблему?

PS: причина, по которой я не использую переменные сеанса PHP, заключается в том, что процедура входа в систему выполняется с помощью javascript. Когда нажата кнопка входа в систему, ajax отправляет заданные учетные данные скрипту php, который проверяет базу данных. Если он успешный, он отправляет код в функцию ajax complete, которая устанавливает переменную. Если у вас есть лучший способ делать то, что мне нужно сделать, мы будем очень рады;)

Спасибо, Зенон

+1

Вы управляете скриптом php, который проверяет логин? Просто установите '$ _SESSION ['loggedIn'] = 'yup';' там и проверьте, установлен ли он на каждом скрипте php. Вы не должны делать такую ​​проверку в JS – Terminus

+0

Хорошо, я сделаю это, спасибо за быстрые ответы! –

ответ

4

Вы не можете и это не безопасно. После результата AJAX вы должны установить файлы cookie и проверить их на каждой странице на стороне сервера.

+0

Так что я тоже не могу использовать php-сессию? –

+0

Вы можете. Используйте [сеансы] (http://www.w3schools.com/php/php_sessions.asp) или свою собственную систему на основе файлов cookie. –

+0

Еще один вопрос: могу ли я задать переменную в файле php, которая проверяет базу данных для данных учетных данных или не будет работать/небезопасно? –