国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

PHP禁止頁面緩存輸出

瀏覽:66日期:2024-01-11 18:30:52

對于 Magic quotes,對于 PHPer 而言是個老生常談的問題。今天無意間看到篇文章,結合PHP Manual以及其回復,在這里做個簡單的匯總。

簡而言之,Magic quotes 開啟后會自動轉義輸入的數據。其中,所有的單引號(')、雙引號(')、反斜線、和 NULL 字符都會被轉義(增加個反斜線),其實這操作本質上調用的是 addslashes 函數。

為什么使用 Magic quotes方便快捷PHP 的設計者在設計之初的構想就是能夠快速方便的編程。例如插入數據庫時,Magic quotes 會自動將數據轉義,這很方便。

對初學者有利Magic quotes 可以從一定程度上,讓初學者帶離腳本的安全風險。例如在沒有任何保護措施的代碼下,開啟了 Magic quotes 后會少很多的風險,例如注入問題。當然,單一使用此方法,并不能完全阻止此類安全問題。

“我沒有權限去關閉”很顯然你已經可能意識到了這個問題,但是主機空間并非完全由自己控制。

為什么不使用 Magic quotes可移植性無論此功能是否開啟,它都會影響腳本的可移植性,因為它影響我們后續過濾數據的操作。

性能問題在獲取所有的外部數據之前都會被轉義,這無疑會增加運行時的花銷(而且并不是所有的數據都需要轉義)。

造成困惑正如上述所言,并非所有的數據都需要被轉義。有可能出現的一種情況,就是當你為了獲取未被轉義的數據,而“瘋狂的”使用 stripslashes 函數。

PHP6 已經不支持PHP 的設計者顯然已經意識到了自己的“錯誤”,所以在 PHP6 中已經將其廢棄。

如何禁用 Magic quotes按照本人觀點,使用 php.ini 配置文件全局禁用 Magic quotes 是最靠譜的。參考下面的代碼

Magic quotesMagic quotes for incoming GET/POST/Cookie data.magic_quotes_gpc = Off; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.magic_quotes_runtime = Off; Use Sybase-style magic quotes (escape ' with '' instead of ').magic_quotes_sybase = Off然而線上的主機可能無法讓你修改 php.ini 文件,那么可以使用 .htaccess 文件禁用,加入下面的代碼

php_flag magic_quotes_gpc Off上述可移植的代碼而言,無論是否禁用 magic_quotes,數據必須保持一致。那么下面的代碼可以幫助您

<?phpif (get_magic_quotes_gpc()) {function stripslashes_deep($value) {$value = is_array($value) ?array_map('stripslashes_deep', $value) :stripslashes($value);return $value;}$_GET;;= array_map('stripslashes_deep', $_GET);$_POST;= array_map('stripslashes_deep', $_POST);$_COOKIE; = array_map('stripslashes_deep', $_COOKIE);$_REQUEST = array_map('stripslashes_deep', $_REQUEST);}

標簽: PHP
主站蜘蛛池模板: 旬阳县| 天全县| 新野县| 偃师市| 奇台县| 宜城市| 桃江县| 齐齐哈尔市| 阿合奇县| 固镇县| 三门县| 监利县| 平安县| 黄山市| 铜山县| 和田县| 贞丰县| 富顺县| 泰兴市| 北川| 寿阳县| 息烽县| 南宁市| 扶余县| 司法| 进贤县| 眉山市| 同心县| 浑源县| 缙云县| 安新县| 监利县| 安新县| 玛纳斯县| 朝阳区| 普格县| 登封市| 南汇区| 揭阳市| 滕州市| 五寨县|