1. JavaScript / Говнокод #3053

    +187.2

    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
    HTTP/1.1 404 Not found
    Server: Netscape-Enterprise/4.1
    Date: Mon, 19 Apr 2010 13:05:32 GMT
    Content-type: text/html
    Connection: close
    
    <script language="JavaScript">
                                  port=0
                      while ( port==0 || port==9 || port==7 ){
                                      port=Math.floor(Math.random()*1000)
                 while (port>=100) port-=100
                                              while (port>=10) port-=10
                                                                         }
    location="http://"+"10.1.100.120:8"+port+document.location.pathname+document.location.search+document.location.hash
    </script>

    вот такой суровый редирект. может вам будет смешно но я из-за неизвестного мудака убил полтора часа.
    думаю он хотел рандомом генить порт от 1 до 1000
    а потом смотреть входит оно в диапазон 81-86,88
    оно подтупливало и он придумал "оптимизацию" ))

    дети, никогда так не вычисляйте остатки
    а если сильно хочется рандомов и всего то уж лучше так

    <script language="JavaScript">
    port=Math.floor(Math.random()*8)+1;
    if (port==7) port++;

    location="http://"+"10.1.100.120:8"+port+document.locatio n.pathname+document.location.search+docu ment.location.hash
    </script>

    Запостил: 3.14159265, 19 Апреля 2010

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

    • Если делать редирект, так через хидер location. Соответственно, URL перенаправления генерировать на сервере. Ящитаю, что автор такого кода - безумец. Ему нужно выпить чашечку чая вместе с Мартовским Зайцем и Болванщиком.
      Ответить
      • А как на сервере выловишь document.location.hash?
        Ответить
    • показать все, что скрытоЗнаю, Знаю. Опять С++.
      Ответить
    • Меня смущает не только то, что рандом от 10 берётся как остаток от рандома от 1000.
      Я не люблю циклы со случайным условием выхода. Не люблю, и всё тут.
      Ответить
    • я вчера торопился не успел описать всех прелестей
      1. внешние линки стоят на 10.1.100.120, и на 80-порту отрабатывает 404 и этот тупой скрипт.
      2. даже на редиректы пишется "нажми на линк" на случай если браузер не поддерживает редирект.
      в данном случае если не включен ява-скрипт, как это было с моим парсером ниче не работает.
      3. при этом крайне тупом подходе еще и крайне кривая реализация скрипта
      4. о whileах для нахождения остатка я вообще молчу - они просто не нужны
      5. из-за спешки вчера я ошибся вместо Math.floor(Math.random()*8) нужно было
      Math.floor(Math.random()*7) - рандомное число от 0 до 6.
      а то так получалось на 88 порт большая нагрузка.
      Ответить
      • Вы как свой ник запоминаете или знаете его до 9-го знака?
        Ответить
        • знаю до 16-го ))
          но вообще автоввод формы логина - удобная вещь

          и эта, не надо думать что оставшаяся часть числа пи, которую я помню - это мой пароль
          Ответить
        • А чего тут помнить.
          Три четырнадцать пятнадцать девяносто два и шесть. 535 898.
          Ответить
          • Это я знаю и помню прекрасно: Пи многие знаки мне лишни, напрасны.
            3.14159265358
            Ответить
    • ну, да, только в конце не 898, а 8979
      Ответить

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