2013-08-29 4 views
0

У меня есть веб-страница, написанная на PHP, HTML и, прежде всего, JavaScript. Я хочу заблокировать (запретить страницу доступа и показать сообщение), чтобы получить доступ к моей веб-странице для человека, который не включил JavaScript в настройках браузера или не поддерживает его, потому что тогда моя страница не отображается правильно и есть много (также ошибки безопасности!). Я знаю, что в HTML можно написать оператор <noscript>, но затем что-то отличное от этого текста будет рассеяно, и оно также является съемным (например, функция Inspector - это браузеры), я сказал, что без JS моя страница содержит ошибки. Итак, мой вопрос: есть ли способ заблокировать доступ * для пользователей, которые не поддерживают JS на моей странице с помощью PHP? Любые другие предложения приветствуются :)Заблокировать доступ для пользователей, не относящихся к javascript

* средство доступа Блок - запретить доступ к главной странице и показать сообщение

+3

вы не можете запретить доступ, но вы можете дать хорошее сообщение и скрыть свой основной контент. –

+0

Здесь могут быть полезные ответы: http://stackoverflow.com/questions/4454551/check-if-javascript-is-enabled-with-php – showdev

+3

_... Есть много ошибок (также ошибки безопасности!) _ - Ну, есть твоя первая проблема.Опираясь на JS для безопасности ** cringes ** – SeanWM

ответ

1

Если вам действительно действительно нужно это. Я сказал три действительно, потому что я думаю, что большую часть времени вы можете выбрать альтернативу этому.

Установите cookie с помощью JavaScript и передайте его вместе с запросом на сервер и подтвердите cookie на своем сервере с переданным запросом. Если вы можете проверить cookie, у вашего клиента нет JS.

Лучшим способом было бы перенаправить пользователей js и non js из одной точки. скажем, в вашем файле index.html у вас есть код javascript, который перенаправляет ваших клиентов или посетителей на другой URL-адрес. Таким образом, вы знаете, что эти пользователи имеют js, но они не будут перенаправлены.

1

Вы можете сделать страницу «суб», который загружает весь свой контент через AJAX. Это не остановит людей от попадания ваших URL-адресов напрямую. Не доверяйте клиенту.

4

Невозможно сделать по-настоящему безопасный способ.

Да, вы можете просто отправить страницу, которая пуста, а затем использовать JS для фактической загрузки содержимого (например, через AJAX), но проблема в том, что JS должен где-то загружать этот код, и злоумышленник мог это сделать слишком. Но вот настоящая проблема:

Пользователи имеют контроль над своими браузерами. JS - код на стороне клиента. Злоумышленник может выбрать запуск, не запуск или изменение, а затем запуск JS. Злоумышленник может даже запустить свой собственный JS для вызова или замены ваших функций. Любая защита, которая зависит от вашего JS, по умолчанию отключена.

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

0

Другие ответы и комментарии уже включают в себя множество деталей о том, почему вы действительно не технически блокировать доступ с помощью Javascript, однако, простое решение, чтобы сделать что-то только тогда, когда JS включена, чтобы вызвать функцию JS после DOM нагрузки:

<script type="text/javascript"> 
    window.onload = do_something(); 
    </script> 
</body> 
</html> 

do_something(), то может включать в себя простые вещи, как переключение видимости элемента блока, например, скрыть сообщение без JS, а также запустить AJAX загрузчик или сделать что-то другое из материала, который уже предложил выше ,

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