2012-06-05 5 views
1

Есть ли способ, чтобы заморозить document.body.innerHTML в JavaScript, так что злоумышленник не смог сделать следующее:Есть ли способ заморозить document.body.innerHTML в JavaScript?

<script>document.body.innerHTML = document.body.innerHTML.replace("http://www.example.com/" , "http://abc.org"); </script>

Кроме того, как заморозить document.location? Благодаря!

+1

№ Код, который имеет возможность запускать на вашей странице, может что-то сделать. – Pointy

+2

отключить javascript – timaschew

+1

@timaschew хорошо, да, это сработает, но вы не сможете контролировать это с самой страницы. Другими словами, страница не может заставить браузер отключить JavaScript для себя. – Pointy

ответ

2

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

  • пользователь вводит дезинфицировать раздеть теги
  • содержание Sanitize, который вставляется в страницу из БД
  • HTML-теги Disallow в любом входе в приложение

Это было бы хорошо место для начала.

0

Ну не с JavaScript. Это просто невозможно. Как ваш код будет более эксклюзивным, чем любой другой?

Простым решением является создание защищенной страницы, которая не подходит для XSS. Разбирайте все, что приходит извне, и ваша страница будет безопасной.

Вы также можете попытаться предотвратить загрузку вашего сайта в фреймах с заголовком X-Frame-Options. Вы можете достичь этого с помощью файла .htaccess с этим контентом:

<IfModule mod_headers.c> 
    # Secure frame optione 
    Header always append X-Frame-Options SAMEORIGIN 
</IfModule> 
1

Нет, нет возможности «заморозить» его. Вы можете предотвратить это, не включая сторонние скрипты на своей странице.

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