Joomla magic quotes gpc off

Joomla magic quotes gpc off

magic quotes gpc — опция php, которая включает предварительную обработку -экранирование спецсимволов внутри данных get- и post- запросов. Задумка была такова, что забывчивые программисты могли оставить sql-инъекцию на сайте, а если все данные изначально экранируются, то забыть их разъэкранировать гораздо сложнее, чем наоборот.

Вскоре разработчики пришли к выводу, что такой подход не удобен, но хитрые хостеры предпочитают по умолчанию все-таки включать её, по понятным причинам, и не всегда дают возможность ее убрать.

После версии PHP 5.3 данная опция перешла в разряд deprecated(устаревшая), а вскоре и вовсе будет выпилена из php.

magic_quotes_gpc и joomla

А в Joomla до 3-ьей версии magic_quotes_gpc проверялась внутри самого фрэймворка и автоматически предпринималось разэкранирование, в случае, если она была включена. В Joomla 3 эту самую проверку убрали и вместо этого добавили требование версии php > 5.3 при установке. По мне сомнительное решение. Но нытьем проблему не решить, поэтому начинаем делать.

Отключение magic_quotes_gpc

Способ первый. через .htaccess

Работает в тех случаях, когда хостер позволяет через .htaccess управлять конфигурацией php.

Дописываем в htaccess файл строчку:

php_flag magic_quotes_gpc off

Способ второй. php.ini

Самый правильный способ, но на shared-хостингах как правило не подпускают к настройкам php. Зачастую доступ к php.ini дается через панель хостинга. В остальных случаях, всё просто:

Открываем php.ini, дописываем или редактируем строчку

magic_quotes_gpc = Off

Способ третий. Хардкод

добавляем эти строки в начало файлов index.php и administrator/index.php

[php]
if (get_magic_quotes_gpc()) {
function clean(&$source, $type = ‘string’) {
$linkstrip = function(&$v){
$v = stripslashes($v);
};
array_walk_recursive($source, $linkstrip);
}
clean($_GET);
clean($_POST);
clean($_REQUEST);
}
[/php]

Просто проходимся по массивам входных данных и убираем лишнее. Этот поможет в случае, если необходимо перенести готовый сайт на хостинг, где эта опция включена и это навсегда. Так и случилось со мной, один из моих сайтов на joomla расположился на godaddy, где по умолчанию magic_quotes_gpc включено, а возможности отключить нет.

3 комментария к “Joomla magic quotes gpc off”
  1. Сергей 16.07.2013
  2. Настя 04.02.2015
  3. Евгений 18.03.2017

Оставить комментарий