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

PHP安全及相關

編輯:PHP綜合

關注安全問題的重要性

看到的遠非全部

阻止用戶惡意破壞你的程式最有效卻經常被忽略的方法是在寫代碼時就考慮它的可能性。留意代碼中可能的安全問題是很重要的。考慮下邊的旨在簡化用PHP中寫入大量文本文件的過程的實例函數:

<?php
function write_text($filename, $text="") {
static $open_files = array();
// 如果文件名空,關閉全部文件
if ($filename == NULL) {
foreach($open_files as $fr) {
fclose($fr);
}
return true;
}
$index = md5($filename);
if(!isset($open_files[$index])) {
$open_files[$index] = fopen($filename, "a+");
if(!$open_files[$index]) return false;
}
fputs($open_files[$index], $text);
return true;
}
?>

這個函數帶有兩個缺省參數,文件名和要寫入文件的文本。

函數將先檢查文件是否已被打開;如果是,將使用原來的文件句柄。否則,將自行創建。在這兩種情況中,文本都會被寫入文件。

如果傳遞給函數的文件名是NULL,那麼所有打開的文件將被關閉。下邊提供了一個使用上的實例。

如果開發者以下邊的格式來寫入多個文本文件,那麼這個函數將清楚和易讀的多。

讓我們假定這個函數存在於一個單獨的文件中,這個文件包含了調用這個函數的代碼。

下邊是一個這樣的程式,我們叫它quotes.php:

<html><body>
<form action="<?=$_SERVER['PHP_SELF']?>" method="get">
Choose the nature of the quote:
<select name="quote" size="3">
<option value="funny">Humorous quotes</option>
<option value="political">Political quotes</option>
<option value="love">Romantic Quotes</option>
</select><br />
The quote: <input type="text" name="quote_text" size="30" />
<input type="submit" value="Save Quote" />
</form>
</body></html>
<?php
include_once('write_text.php');
$filename = "/home/web/quotes/{$_GET['quote']}";
$quote_msg = $_GET['quote_text'];
if (write_text($filename, $quote_msg)) {
echo "<center><hr><h2>Quote saved!</h2></center>";
} else {
echo "<center><hr><h2>Error writing quote</h2></center>";
}
write_text(NULL);
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved