"PHP" / Говнокод #25570 Ссылка на оригинал

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
<?php
    define('_SECUR_GAMES', 1);
    $rootpath = '../';
    require_once '../includes/start.php';
    require_once '../includes/function.php';
    require_once '../includes/header.php';
if($level >0 AND $fr_id!=0)
{
$header='alliance';
mysql_query("UPDATE `mesto` SET `place` = '".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($header)))))))."' WHERE `uid`=".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($use_id)))))))."");
}
$fr=check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($_GET['f'])))))));
$q = mysql_query("SELECT * FROM `fractions` WHERE `id`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($fr)))))))."'");
$f = mysql_fetch_array($q);
$ucount = mysql_result(mysql_query("SELECT COUNT(*) FROM `fractions_users` WHERE `uid`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($use_id)))))))."' AND `fid`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($f['id'])))))))."';"), 0);
$fadm = mysql_result(mysql_query("SELECT COUNT(*) FROM `fractions_users` WHERE `uid`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($use_id)))))))."' AND `fid`='".check(htmlspecialchars(stripslashes(addslashes(strip_tags(mysql_real_escape_string(trim($f['id'])))))))."' AND `adm`=1;"), 0);
    if($game==0 OR $level==0 OR $ban==1){
           echo "<title>Доступ закрыт!!!</title>";

@since 2019

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

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

  • > check(htmlspecialchars(stripslashes( addslashes(strip_tags( mysql_real_escape_string(trim(

    LOOOOOOL
    Ответить
      • strip_tags же против XSS
        mysql_real_escape_string - против SQL
        Ответить
        • Значит, код защищён и от XSS, и от SQL-инъекции! Вероятно, ещё от чего-нибудь защищён, раз столько функций сразу вызвали.
          Ответить
          • stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes( stripslashes( addslashes(
            Ответить
                • Нашёл код этой функции:
                  function check($str)
                      {
                          $str = htmlentities($str, ENT_QUOTES, 'UTF-8');
                          $str = str_replace("'", "'", $str);
                          $str = str_replace("rn", "<br/>", $str);
                          $str = strtr($str, array(chr("0") => "", chr("1") => "", chr("2") => "", chr("3") => "", chr("4") => "", chr("5") => "", chr("6") => "", chr("7") => "", chr("8") => "", chr("9") => "", chr("10") => "", chr("11") => "", chr("12") => "", chr
                          ("13") => "", chr("14") => "", chr("15") => "", chr("16") => "", chr("17") => "", chr("18") => "", chr("19") => "", chr("20") => "", chr("21") => "", chr("22") => "", chr("23") => "", chr("24") => "", chr("25") => "", chr("26") => "", chr("27") =>
                          "", chr("28") => "", chr("29") => "", chr("30") => "", chr("31") => ""));
                          $str = str_replace('\', "\", $str);
                          $str = str_replace("|", "I", $str);
                          $str = str_replace("||", "I", $str);
                          $str = str_replace("/\$/", "$", $str);
                          $str = str_replace("[l]http://", "[l]", $str);
                          $str = str_replace("[l] http://", "[l]", $str);
                          $str = mysql_real_escape_string($str);
                          return $str;
                      }
                  Ответить
    • > addslashes
      Возвращает строку с обратным слешем перед символами, которые нужно экранировать.

      Кому и зачем их нужно экранировать?
      Ответить
      • Чтобы инъекции не было!

        До версии PHP 5.4.0, директива magic_quotes_gpc была включена по умолчанию и, фактически, addslashes() автоматом применялась к данным GET, POST и COOKIE. Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.3.0 и была УДАЛЕНА в PHP 5.4.0.
        Ответить
        • Т.е. код, который отлично работал на 5.3, в 5.4 стал уязвимым?
          Ответить
            • О боже мой, расскажи мне подробнее про пыхопроблемы
              Ответить
              • Ну как, работал сайт на PHP 5.3, разработчик надеялся на магические кавычки. А потом админ обновил PHP до 5.4, а там магические кавычки по умолчанию выключены.

                С чем бы более простым сравнить? Ну например, лазил кто-то по сайтам Хромом из Windows XP. Назойливой рекламы не было, потому что рекламные баннеры были на https с эллиптической криптографией, а с таким софтом этот протокол недоступен. А потом он решил перейти на более современную систему или сменить браузер на нормальный.
                Ответить
    • $pswd = $salt .  md5(md5($salt) . md5($_POST['login']) . md5($_POST['password']));
      mysql_query("INSERT INTO users (login, password) value ($_POST['user'], $pswd);

      а на дворе 2019 год...
      Ответить
              • Смысл хэширования паролей не в том, чтобы их нельзя было подобрать по сети, а в том, чтобы когда спиздят БД, пароли клиентов не попали в руки хацкеров. С точки зрения безопасности к брутфорсу по сети, пароли вполне можно хранить плейнтекстом, разницы никакой.
                Ответить
                  • Произнесите: «Соль не вода и уйдёт без следа» — и бросьте её через плечо, обязательно левое.
                    Ответить
                  • Извиняться перед пользователями и сбрасывать все пароли. Но обычно соль хранят в той же табличке, что и хэшированные пароли, поэтому проебать её и не проебать остальные данные будет сложно.
                    Ответить
            • А кто из вас реально находил коллизию MD5, а не только в книжках читал про неё?
              Ответить
      • > md5($salt) . md5($_POST['login']) . md5($_POST['password'])
        Выглядит секьюрно.
        Ответить

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

Помни, guest, за тобой могут следить!

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


    8