За последние 24 часа нас посетили 22202 программиста и 1685 роботов. Сейчас ищут 1659 программистов ...

get_magic_quotes_gpc устарел, на что заменить?

Тема в разделе "Сделайте за меня", создана пользователем Lovly, 22 окт 2020.

  1. Lovly

    Lovly Новичок

    С нами с:
    22 окт 2020
    Сообщения:
    1
    Симпатии:
    0
    Есть функция textFilter
    В ней get_magic_quotes_gpc но она устарела, и на сколько я знаю уже удалена, в php 7.3
    За что она вообще отвечает? и как обойтись без нее в данном коде? или на что её можно заменить?

    PHP:
    1. function textFilter($source, $substr_num = false, $strip_tags = false) {
    2.     global $db;
    3.     if (function_exists("get_magic_quotes_gpc") AND get_magic_quotes_gpc()) $source = stripslashes($source);
    4.     $find = array('/data:/i', '/about:/i', '/vbscript:/i', '/onclick/i', '/onload/i', '/onunload/i', '/onabort/i', '/onerror/i', '/onblur/i', '/onchange/i', '/onfocus/i', '/onreset/i', '/onsubmit/i', '/ondblclick/i', '/onkeydown/i', '/onkeypress/i', '/onkeyup/i', '/onmousedown/i', '/onmouseup/i', '/onmouseover/i', '/onmouseout/i', '/onselect/i', '/javascript/i');
    5.     $replace = array("d&#097;ta:", "&#097;bout:", "vbscript<b></b>:", "&#111;nclick", "&#111;nload", "&#111;nunload", "&#111;nabort", "&#111;nerror", "&#111;nblur", "&#111;nchange", "&#111;nfocus", "&#111;nreset", "&#111;nsubmit", "&#111;ndblclick", "&#111;nkeydown", "&#111;nkeypress", "&#111;nkeyup", "&#111;nmousedown", "&#111;nmouseup", "&#111;nmouseover", "&#111;nmouseout", "&#111;nselect", "j&#097;vascript");
    6.     $source = preg_replace("#<iframe#i", "&lt;iframe", $source);
    7.     $source = preg_replace("#<script#i", "&lt;script", $source);
    8.     if (!$substr_num) $substr_num = 25000;
    9.     $source = $db->safesql(myBr(htmlspecialchars(substr(trim($source), 0, $substr_num))));
    10.     $source = str_ireplace("{", "&#123;", $source);
    11.     $source = str_ireplace("`", "&#96;", $source);
    12.     $source = str_ireplace("{theme}", "&#123;theme}", $source);
    13.     $source = preg_replace($find, $replace, $source);
    14.     if ($strip_tags) $source = strip_tags($source);
    15.     return $source;
    16. }
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.584
    Симпатии:
    1.762
    Она удалена, потому что удалены сами магические кавычки. Уже давно php не проставляет автоматом слешей перед кавычками/апострафами. Код - какая-то непонятная тонна бреда, с неуклюжей попыткой защититься непонять от чего, но, по ходу от XSS. Вся эта тонна бреда для этого не нужна, для этого нужно при выводе данных пропускать их через htmlspecialchars, и всё.