1. PHP / Говнокод #17220

    +154

    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
    <?
    
    class user
    {
    function login($name, $password)
    {
    $name = mysql_real_escape_string($name);
    $name = htmlspecialchars($name);
    $password = mysql_real_escape_string($password);
    $password = htmlspecialchars($password);
    $sql = mysql_query("SELECT id FROM students WHERE Names='$name' AND Pass='$password'");
    if (mysql_num_rows($sql) == 1)
    {
    $_SESSION['Name'] = $name;
    return 1;
    }
    else
    {
    return 0;
    }
    }

    Код от ТЫЖпрограммиста.

    Запостил: Mobac, 29 Ноября 2014

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

    • Тупое пыхговно
      Ответить
    • mysql_real_escape_string() а затем htmlspecialchars()... Интересное сочетание...
      Ответить
      • А что оно делает?
        Ответить
      • Скорее всего дело было так: школьник прочитал в журнале "хакер" про SqlInjection, и добавил mysql_real_escape_string. Потом прочитал в журнале "комьютерра" про XSS и добавил htmlspecialchars.

        А вот тот факт что в 2014 году обе эти вещи нужно делать вручную -- это преступление PHP, конечно)
        Ответить
        • > нужно
          Нужно? :)
          Ответить
          • Строго говоря не нужно. Есть PDO и (наверное) шаблонизаторы с автоескейпом.
            Но ктож про это знает?
            Ответить
    • А имя в сессии заэскейпенное получится о_О
      Ответить
    • Mobac, как там wct? А то мы уже начали подзабывать.
      Ответить
      • $password = mysql_real_escape_string($password);
        $password = htmlspecialchars($password);
        $password = wct_encode($password);
        Ответить
        • после этого можно даже ничего не писать. пользователь подумает, что сервер завис и закроет браузер.
          Ответить
      • отлично, смотри какие эпичные ролики с демонстрацией набора букв в блокноте
        http://vk.com/wct_official?z=video172535832_169882460% 2F33cf9ea5ac1aa0f9f6
        зацените кстати мою программу на WCT
        ABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGOABCDFEGO
        все круто, но не компилируется. может кто поможет?
        Ответить
        • хм, не сразу заметил у тебя ошибку...
          ABCDFEG0ВН0CDFEG0ВН0CDFEG0ВН0
          Ответить
          • а ты проверял? у меня syntax error. может компилятор другой версии?
            он так стремительно развивается, я не успеваю за обновлениями, только ABCDFEG освоил, как тут O нарисовалось :(
            Ответить
            • > syntax error
              Это просто defecate-plusplus вставил русские "В" и "Н" вместо "B" и "H".

              P.S. Честно. Можете проверить.
              Ответить
            • В этой системе счисления 8 букв (вместо цифр): A, B, C, D, E, F, G, O.

              А вот H там нет. Поэтому и не компилится.
              Ответить

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