1. Список говнокодов пользователя istem

    Всего: 33

  2. Куча / Говнокод #28646

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    <script type="text/javascript">
    	var reformalOptions = {
    		project_id: 9409,
    		show_tab: false,
    		project_host: "govnokod.reformal.ru"
    	};
    
    	(function() {
    		var script = document.createElement('script');
    		script.type = 'text/javascript'; script.async = true;
    		script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'media.reformal.ru/widgets/v3/reformal.js';
    		document.getElementsByTagName('head')[0].appendChild(script);
    	})();
    </script>
    --------------------------------------------------------------------------------
    Request:
    
    GET http://media.reformal.ru/widgets/v3/reformal.js
    Referer: http://govnokod.ru/
    --------------------------------------------------------------------------------
    Response:
    
    307 Temporary Redirect
    Location: http://r.rrzb.ru/?reg=11&orig=http%3A%2F%2Fmedia.reformal.ru%2Fwidgets%2Fv3%2Freformal.js
    --------------------------------------------------------------------------------

    С каких-то там пор, у недобросовестных провайдеров повелось добавлять на страницу без https свои шуры-муры и рекламные финтифлюшки, но сейчас, некоторые более хитрые провайдеры, пошли ещё дальше.

    Смотрят, значит, они на http страничку, или просто ловят запросы js по http, видят подключаемый javascript и вуаля - подменяют заголовок ответа на 307 Location с новым скриптом со своим содержимым.

    Можете сами посмотреть, если у кого такой вот провайдер, например.
    На этом сайте, по http://govnokod.ru, так и происходит.

    Как с этим бороться?

    Например добавлением атрибута "integrity":
    <script src="http://media.reformal.ru/widgets/v3/reformal.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4 YfRvH+8abtTE1Pi6jizo"></script>

    Но у этого способа, сами понимаете, существуют определённые сложности.

    Второй способ - это добавить к адресу любой get параметр:
    <script src="http://media.reformal.ru/widgets/v3/reformal.js?rand=random"></script>

    Конечно, это вообще не спасёт от подмены через 307 Location, но провайдер по своей методике такие URL пока не трогает.

    istem, 24 Марта 2023

    Комментарии (5)
  3. Куча / Говнокод #16723

    +128

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <a href="#" id="foo" onclick="this.nextSibling.style.display=''; return!1;">Click here for view</a><p style="display: none;">
    <noscript>
        </p>
            <style type="text/css"> a#foo { display:none; } </style>
        <p>
    </noscript>
    
        /*... some info ...*/
    </p>

    Баян, не? Вот. Наговнокодилось. captcha=5555

    istem, 18 Сентября 2014

    Комментарии (13)
  4. Куча / Говнокод #11755

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    #include <beer>
    #include <autopilot>
    
    // C праздничком, говнокодеры

    istem, 12 Сентября 2012

    Комментарии (32)
  5. JavaScript / Говнокод #10001

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    function line( x0, y0, x, y, elmId ) {
    
    	var sx = x-x0, sy = y-y0, dir = (sx>sy), adir = (Math.abs(sx)>Math.abs(sy));
    
    	if ( (x0>x&&y0<=y&&adir)||(x0<=x&&y0>y&&!adir)||(x0>x&&y0>y) ) return line(x, y, x0, y0, elmId); // black magic!
    
    	var d1 = dir? x0:y0, d2 = dir? y0:x0, b1 = dir? sx:sy, b2 = dir? sy:sx, k = b2/b1;
    
    		for( var i=0; i<=b1;i++ ){
    
    			if ( dir ) plot( d1, Math.floor(d2), elmId );
    			else plot( Math.floor(d2), d1, elmId );
    
    			d1++;d2+=k;
    		}
    	return true;
    }
    /* ... */
    function plot(x, y, elmId) {
    
    	var div = document.createElement('div');
    	div.className = 'dot' + (!!elmId? ' dot-'+elmId:'' ) ;
    	div.style.left = x + 'px';
    	div.style.top = y + 'px';
    
    	document.getElementsByTagName('BODY')[0].appendChild(div);
    }

    Опачки...

    istem, 20 Апреля 2012

    Комментарии (6)
  6. Куча / Говнокод #9661

    +126

    1. 1
    2. 2
    http://my.sec.ru/author.cfm
    http://daily.sec.ru/search.cfm?s=%22+%2F%3E

    И это называется портал по безопасности...

    istem, 13 Марта 2012

    Комментарии (14)
  7. PHP / Говнокод #9284

    +165

    1. 1
    $daysName = array( 1=>'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 0=>'вс', );

    phpдатаизмы

    istem, 01 Февраля 2012

    Комментарии (9)
  8. Куча / Говнокод #8686

    +147

    1. 1
    http://www.microsoft.com/ru-ru/events/html5camp/

    istem, 30 Ноября 2011

    Комментарии (18)
  9. Куча / Говнокод #8685

    +144

    1. 1
    http://www.microsoft.com/ru-ru/events/html5camp/

    istem, 30 Ноября 2011

    Комментарии (3)
  10. Lua / Говнокод #8651

    −340

    1. 1
    2. 2
    -- All scripts should begin at line
    null, Null, NULL = nil

    Lua

    istem, 26 Ноября 2011

    Комментарии (181)
  11. PHP / Говнокод #8052

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    /**
     * Experiments...
     */
    class poltergeist {
    
    	private $className;
    	private $methods;
    
    	function  __construct() {
    
    		$this->className=array(
    			'page',
    			'source',
    			'user',
    			// etc
    		);
    
    		foreach ($this->className as $v) {
    
    			$this->$v = new $v();
    			$this->methods[$v] = get_class_methods($v);
    		}
    	}
    
    	function __call($name, $arg){
    
    		if ( ($k=$this->arraySearch( $name )) ) {
    
    				return $this->$k->$name($arg);
    		}
    	}
    
    	function arraySearch( $name ){
    
    		foreach ( $this->methods as $k=>$v ) {
    			if ( in_array( $name, $v) ) return $k;
    		}
    	return false;
    	}
    }

    Откопал вот...

    istem, 01 Октября 2011

    Комментарии (15)