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

    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
    26. 26
    private function  auth($data){
            #Проверка данных и авторизация
            $login = str_replace(" ", "", mysql_real_escape_string(htmlspecialchars(strip_tags(trim($data['login'], ' /')))));
            $pwd = str_replace(" ", "", mysql_real_escape_string(htmlspecialchars(strip_tags(trim($data['password'], ' /')))));
    
            $user = Model_Auth::getUser($login);
            if($user===false){
                return false;
            }else{
                if($user['password']==md5(md5($pwd))){
                    $checksumm = md5($user['login'].$user['password'].$user['rules']);
                    Model_Auth::updateUser($user['id'],$checksumm);
                    Model_Auth::updateUserStatus($user['id']);
                    setcookie("user", $checksumm, time()+3600, '/', $_SERVER['HTTP_HOST']);
                    if (isset($_SESSION['ref_url'])) {
                        $ref_url = $_SESSION['ref_url'];
                        unset($_SESSION['ref_url']);
                        header('Location:'.$ref_url);
                    } else {
                        header('Location:'.$GLOBALS['main_page']);
                    }
                }else{
                    return false;
                }
            }
        }

    А теперь удивитесь - если зайти на сайт и у вас внезапно в куках браузера завалялась пустая переменная user, то вы будете автоматически авторизованы от имени того пользователя, который еще ни разу не заходил в систему потому-что $user не проверяется на пустоту

    Запостил: McLotos, 06 Июня 2017

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

    • и это еще не считая того, что в проекте только статические классы, ни одного объекта и все они дружно общаются друг с другом через $GLOBALS
      Ответить
    • Как это не проверяется?
      if($user===false){
      Ответить
      • Элементарно Ватсон, если функция ничего не вернет (а так и есть), то $user не будет равно false, следовательно сработает авторизация от рандомного пользователя
        Ответить
    • > md5(md5($pwd))
      Артемон, отгрызи этому кодеру руки и ноги!
      Ответить
      • Отварил тебя в крепком уксусе, добавил мочи семи животных, коренья девясила, серный цвет, вытяжку айра, настойку полыни, капельку настоя полевого хвоща, менструальные выделения старой девы, сперму 16-летнего мальчика (не спрашивайте, при каких обстоятельствах я ее достал), испражнения молодого поросенка и щепотку сурьмы. Получилось приворотное зелье )
        Ответить
      • Может быть, лучше сразу голову? А то он продолжит настукивать код лбом по клавиатуре.
        Ответить

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