Что такое волшебное время выполнения кавычек в PHP?

Я полностью знаю об аберрации Волшебных Кавычек в PHP, как это является злым, и я избегаю их как вредитель, но что magic_quotes_runtime? Из php.ini:

Волшебные кавычки для сгенерированных временем выполнения данных, например, данных из SQL, от должностного лица (), и т.д.

Что-то, долой что я должен проверить, если ВКЛЮЧЕННЫЙ и поворот:

set_magic_quotes_runtime(false);

Это часто находится НА по умолчанию? Я знаю, что это удержано от использования в 5.3.0 и удалено в 6.0.0, но начиная с моей поддержки сценария 5.1.0 + я хотел бы знать, как обработать это в PHP "прежней версии" (если это релевантно).

Править: Чтобы ясно дать понять вещи, я хочу выйти ('Выключают Волшебные Кавычки'); когда Волшебные кавычки идут. Я не полагаюсь на них!

10
задан AlexV 22 January 2010 в 18:04
поделиться

3 ответа

Если включено magic_quotes_runtime, большинство функций, которые возвращают данные из любого вида внешнего источника, включая базы данных и текстовые файлы, будут сбежать с помощью обратной косания. Если Magic_Quotes_Sybase также включена, одноцитатовая цитата сбежала с одним цитатом вместо обратной косой черты.

http://www.php.net/manual/en/info.configuration.php#iner.magic-quotes-runtime

6
ответ дан 4 December 2019 в 03:16
поделиться

Вы можете использовать INI_GET, чтобы проверить его значение, как это:

ini_get('magic_quotes_runtime');

Также вы должны обернуть звонки на Set_magic_quotes_runtime / get_magic_quotes_runtime в звонках function_exists, как это:

if (function_exists('set_magic_quotes_runtime')) {
set_magic_quotes_runtime(true/false);
}

, но, конечно, не следует полагаться на магические цитаты все и должно быть, если возможно, если возможно. SE Эта ссылка на катуру причин почему: http://www.php.net/manual/en/security.magicquotes.whynot.php

0
ответ дан 4 December 2019 в 03:16
поделиться

Если включены магические цитаты, PHP автоматически выбегает цитаты, приходящие в Post или получать переменные и автоматически избежать их при вытягивании данных из базы данных.

Если вы используете такие вещи, как Add Addslash (), MySQL_ESCAPE_STRING () или MYSQL_REAL_ESCAPE_STRING () с магическими цитатами, вы получите двойные вытекающие цитаты.

Причина, по которой это зло, по той же причине, причинами добавления () и MySQL_ESCAPE_STRING () - это зло - потому что он не захватывает все возможные способы положения цитаты в строку. Это дает вам ложное чувство безопасности, думая, что вам больше не нужно беспокоиться о том, чтобы избежать котировок, когда на самом деле вы все еще делаете.

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

0
ответ дан 4 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: