ЙажаСценарий / Говнокод #16655 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
jQuery(document).ready(function (){
	var setCookie = function (c_name, value, exdays) {
		var exdate = new Date();
		exdate.setDate(exdate.getDate() + exdays);
		var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
		document.cookie = c_name + "=" + c_value;
	}
	var getCookie = function (cname){
		var name = cname + "=";
		var ca = document.cookie.split(';');
		for(var i=0; i<ca.length; i++){
			var c = ca[i].replace(/^\s+|\s+$/gm,'');
			if (c.indexOf(name)==0) return c.substring(name.length,c.length);
		}
		return "";
	}

	if (window.location.hash=='#stop' || (!getCookie('crimea_is_ukraine') && jQuery.inArray(codehelper_ip.Country,ciu_countries)>=0)){
		if (typeof(_gaq)!='undefined'){
			_gaq.push(['_trackEvent', 'Protest', 'Show', 'Crimea is Ukraine']);
		}

http://putlerstop.2-you.info/share/stop_putler.js

Запостил: gost gost, (Updated )

Комментарии (39) RSS

  • Да тут можно начинать цитировать с самого начала. Например, с вот этого:
    document.write('<scr'+'ipt type="text/javascript" language="Javascript" src="http://www.codehelper.io/api/ips/?js"></scr'+'ipt>');
    Ответить
      • Ну-ка, раскрой нам, дуракам, сакральный смысл document.write() в данном коде. Ну помимо недообфускации.
        Ответить
        • В том что он возвращает объект codehelper_ip с данными о пользователе
          Ответить
          • Отдельным блоком, без извращений с document.write(), не заработает разве?
            Ответить
              • > является скриптом который можно подключить на любой сайт
                Теперь понял. Спасибо.
                Ответить
                  • А дом к тому моменту еще недостроен, если я не туплю.

                    P.S. Хотя можно дождаться события о загрузке, и там уже и грузить скрипт через добавление document.createElement('script') к дому... Это, емнип, и загрузку блочить не будет, в отличие от write...
                    Ответить
                    • Спёрто не-помню-с-какого-сайта для асинхронной загрузки виджетов соцсетей:
                      function async_load(u, id) {
                              if (!gid(id)) {
                                  var s = 'script', d = document, o = d.createElement(s), x;
                                  o.type = 'text/javascript';
                                  o.id = id;
                                  o.async = true;
                                  o.src = u;
                                  x = d.getElementsByTagName(s)[0];
                                  x.parentNode.insertBefore(o, x);
                              }
                          }
                      Так делают и всё работает, всё всем платится. Хотя... кажется, вызывают эту функцию после события о загрузке.

                      Только в данном случае нужно сделать без async, потому что ниже используются результаты выполнения загруженного кода.
                      Ответить
                      • > x.parentNode.insertBefore(o, x);
                        Вставить его перед всеми остальными скриптами? Ну-ну, они один хер уже исполнились 🙂

                        P.S. А, это как раз потому, что document.body еще null, а вот как минимум один скрипт (который сейчас и исполняется) уже спарсился и есть в доме. Т.е. ждать события о загрузке не нужно. Хитрый план.
                        Ответить
                        • Ну в данной задаче это всё равно костыль, потому что нужно исполнять полученный код, хотя он по идее должен содержать только данные. А всё потому, что кроссдоменный AJAX работает не везде.

                          Хотя раз уж мы используем jquеry, можно просто написать $.getJSON(...). Увидев, что запрос кроссдоменный, jquery сам допишет обёртку.

                          Кстати, я вообще не понимаю, зачем в таком примитивном скрипте используется jquery (наличие которого скрипт не проверяет и сам подгрузить не может), хотя можно было сделать всё без него и не требовать лишних зависимостей.
                          Ответить
                      • Вот только все способы помимо XHR пугают своей небезопасностью: что при иньекции обычного скрипта, что при иньекции скрипта с jsonp, сервер API может подсунуть произвольный код, и браузер с радостью его исполнит.
                        Ответить
                        • Доверяй серверу.
                          Обычный сервер тебе может подсунуть произвольный код безо всяких проблем. (Что регулярно и происходит.)
                          Ответить
                          • > тебе
                            Здесь я рассматриваю ситуацию не с точки зрения юзера, а с точки зрения разраба сайта: я хочу просто получить немного инфы через некое API, а мне присылают скрипт, который несет потенциальную угрозу посетителям моего сайта (и, соответственно, моей репутации). Веб такой веб.
                            Ответить
              • P.S. Но сама идея с подключением левых скриптов к своему сайту, имхо, не самая лучшая... Это ж добровольный XSS... Все равно что ключи от квартиры или пароли от сервака отдать кому-нибудь с улицы.

                Для cdn'ок гугла и прочих серьезных контор я, пожалуй, сделаю исключение. А остальные - нахуй и впизду.
                Ответить
                • и большой брат будет знать где ты ходишь.
                  На гитхабе был скрипт, который имитирует apis.google.com итп
                  Ответить
                  • > ты
                    Ну, в данном случае, не я, а все мои гипотетические посетители.

                    P.S. Если гугл своей CDN'кой начнет раздавать троянов вместо jQuery и пиздить куки - это будет неплохим ударом по его репутации. Поэтому он так делать не будет (скорее всего). В отличие от всяких стоп-путлеру, которым терять особо то и нечего.
                    Ответить
                      • > доверие провайдеру
                        Ну провайдер в любой сайт может вставить.
                        Ответить
                      • Провайдеры сотовых сетей педерасты (в плохом смысле) по-умолчанию.
                        Я до сих пор помню, как мегафно рвал воип-сессии, или воровал номер, на который звонили, прям из пакетов, и выставлял счёт как за звонок по сотовому.

                        От них давно пора поднимать впн на доверенный сервер.
                        Ответить
                        • ВПН? Террорист! Законопослушным гражданам от государства скрывать нечего!!111адын-адын-адын
                          Ответить
                        • > и выставлял счёт как за звонок по сотовому
                          О_о. Можно пруф?
                          Ответить
                          • > Можно пруф?
                            Х.з., поищу ещё, если не забуду, пока навскидку не нашёл.
                            Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8