久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      關(guān)于PHP安全編程的一些建議

      簡(jiǎn)介

      要提供互聯(lián)網(wǎng)服務(wù),當(dāng)你在開發(fā)代碼的時(shí)候必須時(shí)刻保持安全意識(shí)??赡艽蟛糠?PHP 腳本都對(duì)安全問題不在意,這很大程度上是因?yàn)橛写罅康臒o(wú)經(jīng)驗(yàn)程序員在使用這門語(yǔ)言。但是,沒有理由讓你因?yàn)閷?duì)你的代碼的不確定性而導(dǎo)致不一致的安全策略。當(dāng)你在服務(wù)器上放任何涉及到錢的東西時(shí),就有可能會(huì)有人嘗試破解它。創(chuàng)建一個(gè)論壇程序或者任何形式的購(gòu)物車,被攻擊的可能性就上升到了無(wú)窮大。

      推薦PHP視頻教程:https://www.php.cn/course/list/29/type/2.html

      背景

      為了確保你的 web 內(nèi)容安全,這里有一些常規(guī)的安全準(zhǔn)則:

      1、別相信表單

      攻擊表單很簡(jiǎn)單。通過(guò)使用一個(gè)簡(jiǎn)單的 JavaScript 技巧,你可以限制你的表單只允許在評(píng)分域中填寫 1 到 5 的數(shù)字。如果有人關(guān)閉了他們?yōu)g覽器的 JavaScript 功能或者提交自定義的表單數(shù)據(jù),你客戶端的驗(yàn)證就失敗了。

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

      2、別相信用戶

      假定你網(wǎng)站獲取的每一份數(shù)據(jù)都充滿了有害的代碼。清理每一部分,即便你相信沒有人會(huì)嘗試攻擊你的站點(diǎn)。

      3、關(guān)閉全局變量

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

      register_globals = Off

      新手程序員覺得注冊(cè)全局變量很方便,但他們不會(huì)意識(shí)到這個(gè)設(shè)置有多么危險(xiǎn)。一個(gè)啟用了全局變量的服務(wù)器會(huì)自動(dòng)為全局變量賦任何形式的參數(shù)。為了了解它如何工作以及為什么有危險(xiǎn),讓我們來(lái)看一個(gè)例子。

      假設(shè)你有一個(gè)稱為 process.php 的腳本,它會(huì)向你的數(shù)據(jù)庫(kù)插入表單數(shù)據(jù)。初始的表單像下面這樣:

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

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

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

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

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

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

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

      $_REQUEST $_GET、$_POST、和 $_COOKIE 數(shù)組的結(jié)合。如果你有兩個(gè)或多個(gè)值有相同的參數(shù)名稱,注意 PHP 會(huì)使用哪個(gè)。默認(rèn)的順序是 cookie、POST、然后是 GET。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)