目前分類:About 2008 summer (11)

瀏覽方式: 標題列表 簡短摘要
apache 安全設置

一、確保你安裝的是最新的補丁

  如果門是敞開的話,在窗戶上加鎖就毫無意義。同樣道理,如果你沒有打補丁,繼續下面的操作就沒有什么必要。

  二、隱藏Apache的版本號及其它敏感信息

  默認情況下,很多Apache安裝時會顯示版本號及操作係統版本,甚至會顯示服務器上安裝的是什么樣的Apache模塊。這些信息可以為黑客所用,並且黑客還可以從中得知你所配置的服務器上的很多設置都是默認狀態。

  這裏有兩條語句,你需要添加到你的httpd.conf文件中:

  ServerSignature Off

  ServerTokens Prod

  ServerSignature出現在Apache所產生的像404頁面、目錄列表等頁面的底部。ServerTokens目錄被用來判斷Apache會在Server HTTP響應包的頭部填充什么信息。如果把ServerTokens設為Prod,那么HTTP響應包頭就會被設置成:

  Server:Apache

  如果你非常想嘗試其它事物,你可以通過編輯源代碼改成不是Apache的其它東西,或者你可以通過下面將要介紹的mod_security實現。

  三、確保Apache以其自身的用戶賬號和組運行

  有的Apache安裝過程使得服務器以nobody的用戶運行,所以,假定Apache和你的郵件服務器都是以nobody的賬號運行的,那么通過Apache發起的攻擊就可能同時攻擊到郵件服務器,反之亦然。

  User apache

  Group apache

  四、確保web根目錄之外的文件沒有提供服務

  我們不讓Apache訪問web根目錄之外的任何文件。假設你的所以web站點文件都放在一個目錄下(例如/web),你可以如下設置:

  Order Deny,Allow

  Deny from all

  Options None

  AllowOverride None

  Order Allow,Deny

  Allow from all

  注意,因為我們設置Opitins None 和AllowOverride None,這將關閉服務器的所有Option和Override。你現在必須明確把每個目錄設置成Option或者Override。
 五、關閉目錄瀏覽

  你可以在Directory標簽內用Option命令來實現這個功能。設置Option為None或者-Indexes。

  Options -Indexes

  六、關閉includes

  這也可以通過在Directory標簽內使用Option命令來實現。設置Option為None或者-Includes。

  Options -Includes

  七、關閉CGI執行程序

  如果你不用CGI,那么請把它關閉。在目錄標簽中把選項設置成None或-ExecCGI就可以:

  Options -ExecCGI

  八、禁止Apache遵循符號鏈接

  同上,把選項設置成None或-FollowSymLinks:

  Options -FollowSymLinks

  九、關閉多重選項

  如果想關閉所有選項,很簡單:

  Options None

  如果只想關係一些獨立的選項,則通過將Options做如下設置可實現:

  Options -ExecCGI -FollowSymLinks -Indexes

  十、關閉對.htaccess文件的支持

  在一個目錄標簽中實現:

  AllowOverride None

  如果需要重載,則保證這些文件不能夠被下載,或者把文件名改成非.htaccess文件。比如,我們可以改成.httpdoverride文件,然後像下面這樣阻止所有以.ht打頭的文件:

  AccessFileName .httpdoverride

  Order allow,deny

  Deny from all

  Satisfy All

  十一、運行mod_security

  Run mod_security是O’Reilly出版社出版的Apache Security一書的作者,Ivan Ristic所寫的一個非常好用的一個Apache模塊。可以用它實現以下功能:

  ·簡單過濾

  ·基於過濾的常規表達式

  ·URL編碼驗證

  ·Unicode編碼驗證

  ·審計

  ·空字節攻擊防止

  ·上載存儲限制

  ·服務器身份隱藏

  ·內置的Chroot支持

  ·更多其它功能

  十二、關閉任何不必要的模塊

  Apache通常會安裝幾個模塊,瀏覽Apache的module documentation,了解已安裝的各個模塊是做什么用的。很多情況下,你會發現並不需要激活那些模塊。

  找到httpd.conf中包含LoadModule的代碼。要關閉這些模塊,只需要在代碼行前添加一個#號。要找到正在運行的模塊,可以用以下語句:

  grep LoadModule httpd.conf

  以下模塊通常被激活而並無大用:mod_imap, mo_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex

轉自http://big5.chinaz.com:88/bbs.chinaz.com/Server/thread-1132002-1-1.html

evamax63 發表在 痞客邦 留言(0) 人氣()


$day1=2008-11-01

$date = explode("-" ,$day1);

將變數$day1中的-去除並存到變數$date

$date[0]=2008
$date[1]=11
$date[2]=01

$day="$date[0]$date[1]$date[2]";

$day會等於20081101

(紅色的才是程式碼)

evamax63 發表在 痞客邦 留言(1) 人氣()

php.ini

[date]
date.timezone = Asia/Taipei

date 時間不對~

evamax63 發表在 痞客邦 留言(1) 人氣()

資料庫 try
資料表iuii


$db_host="localhost";
$db_user="root"; //用戶名
$db_password="1024"; //密碼
$db_name="try"; //資料庫名稱
$link=mysql_connect($db_host,$db_user,$db_password) or die("連接資料庫失敗");
mysql_query("SET NAMES 'UTF8'",$link); //選擇編碼UTF-8要輸入UTF8而非UTF-8
$db=mysql_select_db($db_name,$link);
$table="iuii";//資料表名稱
$fic = fopen("iuii1.xml", "w");//輸出xml檔的名稱
fwrite($fic, ' ');
fwrite($fic, "<$db_name>");
$elements =array();
$result = mysql_query("describe $table");
while ($row = mysql_fetch_array($result))//mysql_fetch_array傳回一陣列
  $elements[] = $row[0];
$result = mysql_query("select * from $table");
$i = 0;
while ($row = mysql_fetch_array($result)){
fwrite($fic, "<$table>");
$i++;
//fwrite($fic, " ");
for ($j = 0; $j fwrite($fic, "<$elements[$j]>".htmlspecialchars($row[$j])."</$elements[$j]>");
}
fwrite($fic, "</$table>");
}
fwrite($fic, "</$db_name>");
mysql_close();
fclose($fic);
?>




迴圈部分聽老師講完後懂了大半,

此PHP碼為我修改別人的,
目的在可以讓EXCEL順利讀入

http://www.xmuer.com/redirect.php?tid=41166&goto=lastpost原始網頁在這,

這個站有很多強者,

嗯嗯!!!

evamax63 發表在 痞客邦 留言(0) 人氣()

其實都是一些很基本的東西...

矩陣...

簡單的SQL指令...

老師真的很有耐心,如果是我的學生我早就抓狂了吧....

嘖嘖嘖~

學著越多,越覺得自己弱...

evamax63 發表在 痞客邦 留言(0) 人氣()

資料表membt、conft,裡面有UID和密碼兩個欄位,且皆有值
資料表allold,裡面有UID和密碼兩個欄位,且皆無值

資料表合併為新的資料表

INSERT INTO allold
SELECT UID, 密碼
FROM membt, conft
WHERE membt.UID = conft.UID
會出現 #1052 - Column 'UID' in field list is ambiguous

WHY???

因為現在membt和conft加起來有兩個UID
所以要指定一個,
方法如下

INSERT INTO allold
SELECT membt.UID, 密碼
FROM membt, conft
WHERE membt.UID = conft.UID

evamax63 發表在 痞客邦 留言(0) 人氣()

出現 Warning: Cannot modify header information - headers already sent by ....

1.output_buffering沒有開啟
解決方式:
在php.ini找到output_buffering
拿掉它的註解
將其修改成output_buffering = 4096 或者是更高的值

2.header前不可有任何輸出。

evamax63 發表在 痞客邦 留言(0) 人氣()

用記事本把EXCEL改過的CSV檔,

會因為EXCEL存檔的問題

而把裡面控制欄位的符號去掉

故必須使用記事本或相關工具

把原本的符號加入!

evamax63 發表在 痞客邦 留言(0) 人氣()

就~~~

欄位不能有奇怪的符號EX:"&"

以上

evamax63 發表在 痞客邦 留言(0) 人氣()

一般班網頁預設是80
http://hjwang1.niu.edu.tw/
會等於http://hjwang1.niu.edu.tw:80/
不過如果用不一樣的port
http://hjwang1.niu.edu.tw:800/
會有不同網頁唷

port可以去設定檔改

evamax63 發表在 痞客邦 留言(0) 人氣()

咳咳~

phpMyAdmin如果要用cookie登入
$cfg['Servers'][$i]['auth_type']= 'cookie';

如出現

請加入$cfg['blowfish_secret'] = '';的值,
例$cfg['blowfish_secret'] = 'youloveevamax63';

如出現

請啟動 php_mcrypt.dll
把php.ini裡的;extension=php_mcrypt.dll的";"拿掉表示啟動
將 php目錄下的 libmcrypt.dll 檔案複製到 apache\bin 與 windows\system32

evamax63 發表在 痞客邦 留言(0) 人氣()