多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 安全技巧-如何編寫安全的PHP代碼

安全技巧-如何編寫安全的PHP代碼

來源:程序員人生   發布時間:2014-04-10 00:59:36 閱讀次數:3804次
作為網站的所有者或從業者無不希望自己的網站可以安全的運營,然而很多時候網站開發時的一點小疏忽,很可能成為網站巨大的安全隱患。如今web開發的工具和語言有很多,PHP便是其中一種。PHP語言本身具有無可比擬的安全特征,但卻沒有引起廣大網站開發者的重視。網站安全可以保證企業員工敏感數據的安全,甚至能有效的阻止服務器遭劫持等問題。以下筆者將對使用PHP開發時的幾點建議和大家討論,希望可以帶給用戶一些幫助。

  首先,最重要的事情就是要弄清各種變量和用戶輸入數據。許多你不曾注意的變量本身很可能成為惡意軟件程序傳播感染的極佳途徑。我們可以假設在你的網站上存在一些不是太安全的代碼,但卻運行正常。攻擊者發掘這些漏洞后可以肆無忌憚的在你的網站中進行破壞活動。不要小看這些不起眼的變量名,這些漏洞一旦被黑客利用,其不僅僅是刪除文件而且刪除整個密碼系統或其它敏感信息,最終可能對服務器的正常運轉造成巨大的傷害。

  網站管理員對所有從外部輸入的文件必須檢查其內容是否存在惡意代碼,同時數據庫安全也是至關重要的。數據庫安全必將涉及很多SQL注入等攻擊方式,這里不做詳細闡述,用戶如果希望了解數據庫安全信息,我會按需求詳細介紹。

  Magic Quotes

  Magic Quotes在處理用戶文件輸入時非常好用。當這個選項開啟之后(位于你的php.ini文件中)它將會把所有的單引號和雙引號區分開,也可以將NULL字節從用戶的輸入信息中分開。當開啟Magic Quote時的一個問題是你是否希望你的用戶進行引號過濾。如果你關閉Magic Quote的話可以在“runtime”中分析到用戶輸入數據的字符串。

  如果你對PHP還不熟悉,我建議你開啟這一功能直到你學會了怎么樣分析和表現用戶輸入的數據。我個人建議使用我編寫的“清除”功能。我將會給你提供一個模板,這樣你就可以自己編寫一個清除功能了。

      <?php

      function clean($string)

      {

  $string = stripslashes($string);

  $string = htmlentities($string);

  $string = strip_tags($string);

  return $string;

  }

  ?>

  如果你的用戶正在提交一個需要用戶名驗證的form時,你可以使用如下的功能:

      <?php

      $username = $_POST[username];

  echo clean($mystring);

  ?>

  對于這個Magic Quote來說,有3種指令來實現。你可以參考php.net網站或是php manual。這三種指示基本上就是magic_quotes_gpc,這些用來處理訪問請求(get,post,cookies)。magic_quotes_runtime用來處理文件和數據庫,外部文件。第三種就是magic_quotes_sybase,如果它被激活的話就會直接廢掉magic_quotes_gpc。

  通過朦朧而獲得的安全

  最近你可能沒有注意到,但是我發現在一些網站上的PHP語言中可以找得到ASP (Active Server Page 動態服務器主頁)或是PERL(一種GGI腳本語言)擴展語言,我們可以100%肯定這個網站使用的正是PHP/SQL為基礎的架構。這是一種典型的迷惑式安全策略,而不是告訴黑客你使用的正是PHP腳本從而誤導他們以為你運行的是PERL或python或是其它任何腳本語言。

  例如,你可以使用php擴展運行php腳本,就和一般情況下一樣。為了不讓別人看到你的"hello.php"腳本,你實際上使用Apache來隱藏或是迷惑真正的文件擴展名。因此不是使用的"hello.php"擴展名,你可以將這些文件偽裝成PERL語言,你的"hello.php"仍然是PHP腳本。就像下面一樣:

  [quote]AddType application/x-httpd-php .asp .py .pl[/quote]

  我最喜歡的就是編一個文件擴展名, 譬如 .sun 或 .fuck

  [quote]AddType application/x-httpd-php .sun .fuck .1e3t[/quote]

  我確信當黑客在碰到看似是運行php文件的。Sun文件的時候會急于發動攻擊,后果可想而知。試一下就知道了。上面的代碼使用于Apache配置文件,如果你是在一臺共享的主機上的話你就不會訪問到Apache配置文件。

  Register Globals

  當Global4.2版本出現時PHP發生很大的變化。對于php.ini文件中的INI文件來說這是一個開或閉的選擇,PHP并不是逼你采用類似其它語言一樣的原始參數,正因為如此,人們將它看作是一種不安全的語言。當register globals開啟的時候,它就會允許設置參數的請求。最好的例子就是用戶注冊形式。我們假設register globals開啟:

      <?php

      if($authed = true) {

  echo "my sensitive information";

  }

  ?>

  任何用戶都可以通過發送GET請求訪問敏感信息。你可以通過telnet(用于遠程聯接服務的標準協議或者實現此協議的軟件遠程登錄)或是瀏覽器,譬如sin.php?authed=true,這樣就會顯示敏感信息。如果我們將其關閉,就會阻止這一問題,現在當我們訪問sin.php?authed=true頁面的時候,就會一片空白。用戶不能從外部來源初始化變量。另外一個保護你的變量免于外部來源影響的一個辦法就是檢查它們是否是通過GET或是POST請求。

      <?php

      $authed = true;

  if(isset($_POST[authed]) || $_GET[authed]) {

  echo "variable violation";

  } else {

  if($authed == true) {

  echo "my sensitive information";

  }

  }

  ?>

  通過監控GET或是POST請求我們就可以檢查到是否有人在我們的變量中注入什么東西。接下來我們收到的消息不僅包括他們已經破壞了變量,還可以及時通知管理員做出應急措施。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲综合第一欧美日韩中文 | 亚洲三级中文字幕 | 国产精品久久久久久久久夜色 | 国产成人精品久久综合 | 免费的看黄网站 | 91九色精品国产 | 亚洲成a人片在线观看中文!!! | avwww在线| 亚洲精品一区二区三区在线看 | 免费h视频网站 | 日本二区免费一片黄2019 | 最近中文字幕高清1 | 波多野结衣178部中文字幕 | 久久伊人亚洲 | 色黄网址| 古代的一a一片一级一片 | 亚洲精品成人一区 | 91福利国产在线观一区二区 | 亚洲免费人成在线视频观看 | 亚洲欧美日韩国产综合久 | a免费国产一级特黄aa大 | 日本在线视频网 | 精品国产日韩亚洲一区二区 | 看大片免费网站 | 国产高清免费不卡观看 | 三级c欧美做人爱视频 | 国产精品夜色视频一级区 | 波多野结衣与老人公gvg在线 | 国产在线拍国产拍拍偷 | 日本在线不卡一区二区 | 黄色片网站在线播放 | 老司机午夜性大片免费 | 亚洲视频第二页 | 国产成人精品一区 | 久久久国产99久久国产一 | 精品偷自拍另类在线观看 | 国产免费福利视频一区二区 | 老司机福利在线免费观看 | 国内视频自拍在线视频 | 久久88香港三级台湾三级中文 | 国内自拍在线观看 |