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

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
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
<!-- todo: put this in a different file!!! -->
<script>
function authenticateUser(username, password) {
  var accounts = apiService.sql(
    "SELECT * FROM users"
  );

  for (var i = 0; i < accounts.length; i++) {
    var account = accounts[i];
    if (account.username === username &&
        account.password === password)
    {
      return true;
    }
  }
  if ("true" === "true") {
    return false;
  }
}

$('#login').click(function() {
  var username = $("#username").val();
  var password = $("#password").val();

  var authenticated = authenticateUser(username, password);

  if (authenticated === true) {
    $.cookie('loggedin', 'yes', { expires: 1});
  } else if (authenticated === false) {
    $("#error_message").show();
  }
});
</script>

This JavaScript code powers a 1,500 user intranet application

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

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

  • Классно, выбрали всех юзеров вместе с паролями из базы, а потом в цикле ищем нужного (на клиенте!).
    if ("true" === "true") {
        return false;
      }
    Это зачем?

    Это на каком сайте в каком ональном отверстии такое говно?
    Ответить
    • Тут вся архитектура порочна:
      $.cookie('loggedin', 'yes', { expires: 1});

      Это вообще можно сразу выполнить из сосноли браузера и не морочить себе голову вспоминанием пароля.
      Ответить
      • Интересно, зачем там логиниться и вообще регистрироваться? Какие на этом сайте можно совершить действия и как сервер поймёт, что за юзер их совершает?
        Ответить
        • Для этого нужно увидеть оставшуюся часть сайта. Вдруг там к запросам логин юзера подставляется скриптом? Может быть, там все действия через аякс?
          Ответить
  • Выкладывать коды нужно без тега "<script>", если это не несёт дополнительную смысловую нагрузку.
    Ответить
    • А комментарий?
      <!-- todo: put this in a different file!!! -->
      Ответить
  • apiService.sql(mysql_real_escape_string(
        "SELECT * FROM users"
    ));


    Нужно так?
    Ответить
    • Эскейпить данные полученные из базы? 🙂

      ЗЫ. в жопаскрипит нет такой функции.
      Ответить
      • В данном примере эскейпится константа "SELECT * FROM users", а не полученные данные.
        Ответить
          • Композиция операторов не в том порядке. Это может быть как-то связано с изучением функциональных ЯП?
            Ответить
        • >SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host.
          Что опять случилость?
          Ответить
          • А если не отключили нотификацию по email и автор говнокода, и автор комментария, то висит вдвойне дольше.
            Ответить
          • А если не отключили нотификацию по email и автор говнокода, и автор комментария, то висит вдвойне дольше.
            Ответить
          • А если не отключили нотификацию по email и автор говнокода, и автор комментария, то висит вдвойне дольше.
            Ответить
          • А если не отключили нотификацию по email и автор говнокода, и автор комментария, то висит вдвойне дольше.
            Ответить
          • А если не отключили нотификацию по email и автор говнокода, и автор комментария, то висит вдвойне дольше.
            Ответить
          • А если не отключили нотификацию по email и автор говнокода, и автор комментария, то висит вдвойне дольше.
            Ответить
  • В интранете защита может быть чисто административной: кто сломал сайт, тот лишился премии.
    Ответить
    • > кто сломал сайт

      А как это узнать, и можно ли этому доверять, если:
      1. можно loggedin: yes, либо
      2. все логины и пароли в области видимости консоли браузера
      3. можно запроксироваться с компа коллеги или любого компа в сети, например с телефона по вайфаю, который в случае разбирательств проверять не станут

      Так что нарушитель неуязвим.
      Ответить
      • Тот, кто играет в пасьянс на банкомате, тоже до поры, до времени думает, что он неуязвим...
        Ответить
        • Можешь без палева открыть в браузере говнокод, значит можешь без палева и сайт сломать.
          Ответить

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

Переведи на "PHP", guest!

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


    8