亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于PHP安全編程的建議

發布時間:2020-05-08 11:28:36 來源:億速云 閱讀:590 作者:Leah 欄目:編程語言

今天小編給大家分享的是關于PHP安全編程建議的詳細介紹,相信大部分人都不太了解,為了讓大家更加了解,所以給大家總結了以下內容,話不多說,一起往下看吧。

簡介

要提供互聯網服務,當你在開發代碼的時候必須時刻保持安全意識。可能大部分 PHP 腳本都對安全問題不在意,這很大程度上是因為有大量的無經驗程序員在使用這門語言。但是,沒有理由讓你因為對你的代碼的不確定性而導致不一致的安全策略。當你在服務器上放任何涉及到錢的東西時,就有可能會有人嘗試破解它。創建一個論壇程序或者任何形式的購物車,被攻擊的可能性就上升到了無窮大。

背景

為了確保你的 web 內容安全,這里有一些常規的安全準則:

1、別相信表單

攻擊表單很簡單。通過使用一個簡單的 JavaScript 技巧,你可以限制你的表單只允許在評分域中填寫 1 到 5 的數字。如果有人關閉了他們瀏覽器的 JavaScript 功能或者提交自定義的表單數據,你客戶端的驗證就失敗了。

用戶主要通過表單參數和你的腳本交互,因此他們是最大的安全風險。你應該學到什么呢?在 PHP 腳本中,總是要驗證 傳遞給任何 PHP 腳本的數據。在本文中,我們向你演示了如何分析和防范跨站腳本(XSS)攻擊,它可能會劫持用戶憑據(甚至更嚴重)。你也會看到如何防止會玷污或毀壞你數據的 MySQL 注入攻擊。

2、別相信用戶

假定你網站獲取的每一份數據都充滿了有害的代碼。清理每一部分,即便你相信沒有人會嘗試攻擊你的站點。

3、關閉全局變量

你可能會有的最大安全漏洞是啟用了 register_globals 配置參數。幸運的是,PHP 4.2 及以后版本默認關閉了這個配置。如果打開了 register_globals,你可以在你的 php.ini 文件中通過改變 register_globals 變量為 Off 關閉該功能:

register_globals = Off

新手程序員覺得注冊全局變量很方便,但他們不會意識到這個設置有多么危險。一個啟用了全局變量的服務器會自動為全局變量賦任何形式的參數。為了了解它如何工作以及為什么有危險,讓我們來看一個例子。

假設你有一個稱為 process.php 的腳本,它會向你的數據庫插入表單數據。初始的表單像下面這樣:

<input name="username" type="text" size="15" maxlength="64">

運行 process.php 的時候,啟用了注冊全局變量的 PHP 會將該參數賦值到 $username 變量。這會比通過$_POST['username']$_GET['username'] 訪問它節省擊鍵次數。不幸的是,這也會給你留下安全問題,因為 PHP 會設置該變量的值為通過 GET 或 POST 的參數發送到腳本的任何值,如果你沒有顯示地初始化該變量并且你不希望任何人去操作它,這就會有一個大問題。

看下面的腳本,假如 $authorized 變量的值為 true,它會給用戶顯示通過驗證的數據。正常情況下,只有當用戶正確通過了這個假想的 authenticated_user() 函數驗證,$authorized 變量的值才會被設置為真。但是如果你啟用了 register_globals,任何人都可以發送一個 GET 參數,例如 authorized=1 去覆蓋它:

<?php
// Define $authorized = true only if user is authenticated
if (authenticated_user()) {
    $authorized = true;
}
?>

這個故事的寓意是,你應該從預定義的服務器變量中獲取表單數據。所有通過 post 表單傳遞到你 web 頁面的數據都會自動保存到一個稱為 $_POST 的大數組中,所有的 GET 數據都保存在 $_GET 大數組中。文件上傳信息保存在一個稱為 $_FILES 的特殊數據中。另外,還有一個稱為 $_REQUEST 的復合變量。

要從一個 POST 方法表單中訪問username字段,可以使用 $_POST['username']。如果 username 在 URL 中就使用$_GET['username']。如果你不確定值來自哪里,用 $_REQUEST['username']

<?php
$post_value = $_POST['post_value'];
$get_value = $_GET['get_value'];
$some_variable = $_REQUEST['some_value']; 
?>

$_REQUEST $_GET$_POST、和 $_COOKIE 數組的結合。如果你有兩個或多個值有相同的參數名稱,注意 PHP 會使用哪個。默認的順序是 cookiePOST、然后是 GET

關于PHP安全編程的建議就分享到這里了,希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湘阴县| 章丘市| 嘉荫县| 翁源县| 安平县| 那坡县| 襄樊市| 和林格尔县| 穆棱市| 昂仁县| 平定县| 西充县| 靖江市| 曲松县| 定兴县| 封开县| 鸡泽县| 金寨县| 获嘉县| 绥阳县| 潞西市| 太原市| 乡宁县| 调兵山市| 桂平市| 白银市| 科尔| 石景山区| 育儿| 专栏| 镇沅| 波密县| 灵丘县| 綦江县| 呼和浩特市| 洛南县| 邵阳市| 高清| 海丰县| 湾仔区| 广德县|