程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 劣質的PHP代碼簡化

劣質的PHP代碼簡化

編輯:PHP綜合
復制代碼 代碼如下:
<?
echo("<p>search results for query:").
$_GET['query'].".</p>";
?>

這段代碼的主要問題在於它把用戶提交的數據直接顯示到了網頁上,從而產生XSS漏洞。其實有很多方法可以填補這個漏洞。那麼,什麼代碼是我們想要的呢?
復制代碼 代碼如下:
<?
echo("<p>search results for query:").
htmlspecialchars($_GET['query']).".</p>";
?>


這是最低要求。XSS漏洞用htmlspecialchars函數填補了,從而屏蔽了非法字符。
復制代碼 代碼如下:
<?php
if(isset($_GET['query']))
echo'<p>search results for query:',
htmlspecialchars($_GET['query'],ENT_QUOTES).'.</p>';
?>

能寫出這樣代碼的人應該是我想要錄用的人了:
*<?被替換成了<?php,這樣更符合XML規范。
*在輸出$_GET['query']值前先判斷它是否為空。
*echo命令中多余的括號被去掉了。
*字符串用單引號限定,從而節省了PHP從字符串中搜索可替換的變量的時間。
*用逗號代替句號,節省了echo的時間。
*將ENT_QUOTES標識傳遞給htmlspecialchars函數,從而保證單引號也會被轉義,雖然這並不是最主要的,但也算是一個良好的習慣
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved