,限定某個目錄禁止解析php。
對于使用PHP語言編寫的網站,有一些目錄是由需求上傳文件的,如果被黑客上傳了用php代碼寫的木馬,由于網站可以執行php程序,最終會讓黑客拿到服務器權限。為了避免這種情況發生,我們需要把能上傳文件的目錄直接禁止解析php代碼。編輯配置文件:
php_admin_flag engine off
//Filesmatch的作用是不允許解析源代碼
Order allow,deny
Deny from all
重新加載配置文件后驗證:
# mkdir upload //在www.123.com目錄下創建upload文件夾
# ls
123.jpg 123.php 123.txt admin index.html upload
# cp 123.php upload/ //把123.php拷貝到upload文件夾
# curl -x127.0.0.1:80 www.123.com/upload/123.php -I //解析123.php時報403
HTTP/1.1 403 Forbidden
Date: Sat, 02 Jun 2018 22:21:09 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
Content-Type: text/html; charset=iso-8859-1
編輯配置文件去掉filesmatch后重新驗證得到如下結果:
# curl -x127.0.0.1:80 www.123.com/upload/123.php
echo 123.php;
>
curl直接返回源代碼,說明123.php不能正常解析。
2,限制user_agent。
user_agent可以理解成瀏覽器標識。當用curl訪問時,user_agent為curl/7.29.0,當用firefox瀏覽器訪問時,user_agent為Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0。
編輯配置文件:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
RewriteRule .* - [F]
這里用到了rewrite模塊,%{HTTP_USR_AGENT} 為user_agent的內置變量,上例上匹配到curl或者baidu.com時,都會觸發下面的規則。方括號中的OR表示或者,NC表示“不區分大小寫”,F相當于Forbidden。
驗證:curl -x127.0.0.1:80 www.123.com/123.php -I
HTTP/1.1 403 Forbidden
Date: Sun, 03 Jun 2018 06:57:41 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
Content-Type: text/html; charset=iso-8859-1
curl -A "123123" -x127.0.0.1:80 www.123.com/123.php -I
HTTP/1.1 200 OK
Date: Sun, 03 Jun 2018 06:57:51 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
X-Powered-By: PHP/5.6.32
Cache-Control: max-age=0
Expires: Sun, 03 Jun 2018 06:57:51 GMT
Content-Type: text/html; charset=UTF-8
此處用curl -A 指定user_agent,第一個請求的user_agent為curl默認的curl/7.29.0,所以狀態碼是403,第二個請求的user_agent為自定義的“123123”,沒有任何匹配條件,此時狀態碼應為200。
3,php配置。
雖然php是以httpd一個模板的形式存在的,但是php本身也有自己的配置文件。使用下面的命令查看php的配置文件:
# /usr/local/php/bin/php -i |grep -i "loaded configuration file"
PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line
Loaded Configuration File => /usr/local/php/etc/php.ini
(1) php.ini就是PHP的配置文件,第一行的警告是告訴我們系統的時區設置有問題,編輯配置文件找到date.timezone設置為Asia/shanghai則不會再提示錯誤。
# /usr/local/php/bin/php -i |grep -i "loaded configuration file"
Loaded Configuration File => /usr/local/php/etc/php.ini
(2)php的disable_functions。php有很多內置的函數,有一些函數比如exec會直接調取linux系統命令,如果開放會非常危險。因此處于安全考慮應該把一些存在安全危險的函數禁止掉:vim /usr/local/php/etc/php.ini 搜索disable_functions然后添加如下內容:
disable_functions=eval,assert,popen.passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close
禁用如上函數后需要重啟httpd服務后才能生效。
(3)配置而error_log。php的日志很重要,它是排查問題的重要手段。編輯php的錯誤日志,改動如下幾項:
log_errors = On error_log =/var/log/php/php_errors.log error_reporting = E_ALL &~E_NOTICE display_errors = Off
log_errors 可以設置為on 或者off,on表示php會記錄錯誤日志。error_log設定錯誤日志路徑,error_reporting 設定錯誤日志級別,E_ALL為所有類型的日志,不管是提醒還是警告的都會記錄。&表示并且~表示排除,所以E_ALL &~E_NOTICE表示的是除了notice之外的所有日志。display_errors如果設置為on則會把錯誤日志直接顯示在瀏覽器里,這樣對于用戶訪問來說體驗不好,而且還會暴露網站的一些文件路徑等重要信息,所以要設置為off。設置完php.inf還需要做如下操作:
# mkdir /var/log/php
# chmod 777 /var/log/php/ //需要保證php錯誤日志所在的目錄存在,并且權限為可寫
# /usr/local/apache2/bin/apachectl graceful
# cat /var/log/php/php_errors.log
[03-Jun-2018 14:44:02 Asia/shanghai] PHP Parse error: syntax error, unexpected 'php' (T_STRING), expecting ',' or ';' in /data/wwwroot/www.123.com/123.php on line 2
去掉123.php結尾的;號查看錯誤日記就可以判斷出錯誤了。
(4)配置open_basedir。open_basedir的作用是將網站限定在指定目錄里,就算該站點被黑了,黑客也只能在該目錄下面有所作為,而不能左右其它目錄。如果服務器上只有一個站點,那可以直接再php.ini中設置open_basedir參數,如果服務器上有多個站點那在php.ini中設置就不合適了。
打開配置文件vim /usr/local/php/etc/php.ini設置open_basedir:open_basedir =/tmp:/data/wwwroot/www.123.com
open_basedir可以是多個目錄,可以用:冒號隔開。現在已經限制了php只能在/tmp:和/data/wwwroot/www.123.com兩個目錄下活動。
單個虛擬主機設置open_basedir:
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
php_admin_value open_basedir "/data/wwwroot/www.123.com/:/tmp/"
起作用的是php_admin_value ,它可以定義php.ini里面的參數,除此之外還可以定義error_log之類的。
通常只能查看但不能復制網頁內容,大部分都是通過網頁的客戶端腳本控制實現的。只要按照以下幾個步驟操作,就能成功。
1、打開IE瀏覽器,輸入你要想復制內容的頁面。
2、依次點擊瀏覽器菜單欄上的“工具”、“Internet選項”
3、在打開的標簽窗口中點擊“安全”標簽,然后在選中“受限制的站點”之后,點擊“站點”按鈕
4、在打開的“受限站點”對話框中,將網址“”輸入到“將該網站添加到區域中”的輸入框中,然后點擊“添加”按鈕,查看確認下面的“網站”列表框中已經有該站點的網址,就可以點擊“確定”關閉該對話框回到“Internet屬性”標簽窗口,繼續點擊“確定”按鈕以關閉窗口
5、回到剛才打開那個頁面的瀏覽器窗口,點擊工具欄上的刷新按鈕重新加載頁面,完成后我們就可以把內容復制下來作進一步的處理了。、
=========================================================
1、打開要保存的網頁,點菜單中的“文件”->“另存為”->然后在保存類型中選擇“文本文件(*.txt)”,然后保存就好了。
2、然后打開文本文件找到那段內容,復制出來,如果不能保存則此方法沒用。
還可以這樣:點開菜單中的“查看”->“查看源文件”。可以打開一個文本文件,在里面可以找到需要的內容,就可以復制了。有些禁止查看源文件的就沒效了。又可以這樣:點擊右鍵,選擇“查看源文件”,打開一個文本文件,找到需要的內容再復制出來,此方法對禁止右鍵的網頁沒效!
=========================================================
A 破解方法:在頁面目標上按下鼠標右鍵,彈出限制窗口,這時不要松開右鍵,將鼠標指針移到窗口的“確定”按鈕上,同時按下左鍵。現在松開鼠標左鍵,限制窗口被關閉了,再將鼠標移到目標上松開鼠標右鍵。
B 出現“添加到收藏夾”的情況。破解方法:在目標上點鼠標右鍵,出現添加到收藏夾的窗口,這時不要松開右鍵,也不要移動鼠標,而是使用鍵盤的Tab鍵,移動光標到取消按鈕上,按下空格鍵,這時窗口就消失了,松開右鍵看看,wonderful!右鍵恢復雄風了!將鼠標移動到你想要的功能上,點擊左鍵吧。
C 超鏈接無法用鼠標右鍵彈出“在新窗口中打開”菜單的情況。破解方法:這時用上面的兩種方法無法破解,看看這一招:在超鏈接上點鼠標右鍵,彈出窗口,這時不要松開右鍵,按鍵盤上的空格鍵,窗口消失了,這時松開右鍵,可愛的右鍵菜單又出現了,選擇其中的“在新窗口中打開”就可以了。
D 在瀏覽器中點擊“查看”菜單上的“源文件”命令,這樣就可以看到html源代碼了。不過如果網頁使用了框架,你就只能看到框架頁面的代碼,此方法就不靈了,怎么辦?你按鍵盤上的“Shift F10”組合鍵試試。
E 看見鍵盤右Ctrl鍵左邊的那個鍵了嗎?按一下試試,右鍵菜單直接出現了! F 在屏蔽鼠標右鍵的頁面中點右鍵,出現限制窗口,此時不要松開右鍵,用左手按鍵盤上的“ALT F4”組合鍵,這時窗口就被關閉了,松開鼠標右鍵,菜單出現了
么是HTML / HTM文件?他們相差一個字母有什么區別嗎,如何查看或編輯源代碼以及如何轉換成其他格式,例如DOCX,PDF,JPG 等,針對這些問題編程獅W3Cschool整理以下資料希望能對你有所幫助:
HTM / HTML 文件是超文本標記語言(Hyper Text Markup Language)文件,是 Internet 上的標準網頁文件類型。
由于 HTM 文件是純文本文件,因此它們僅包含文本(例如您現在正在閱讀的內容)以及對其他外部文件的文本引用(例如本文中的配圖)。
HTM 和 HTML 文件還可以引用其他文件,例如視頻,CSS 或 JS 文件。
HTM 與 HTML 沒有本質意義的區別,只是為了滿足 DOS 僅能識別 8+3 的文件名而已,因為一些老的系統 (win32) 不能識別四位文件名,所以某些網頁服務器要求 index.html 最后一個 l 不能省略。MSIE 能自動識別和打開這些文件,但編寫網頁地址的時候必須是完全對應的,也就是說 index.htm 和 index.html 是兩個不同的文件,對應著不同的地址。值得一提的是 UNIX 系統中對大小寫敏感,不吻合的話就可能報沒有文件或者找不到文件。
任何 Web 瀏覽器,例如 Edge,Firefox,Chrome,Opera,IE,360 安全瀏覽器等,都可以打開并正確顯示 HTM 和 HTML 文件。換句話說,在瀏覽器中打開這些文件并“解碼(decode)” HTM 或 HTML 文件使其能正確顯示。
現在有很多簡化編輯和創建 HTM / HTML 文件的工具。一些著名的免費 HTML 編輯器包括 Eclipse ,Komodo Edit 和 Bluefish 。另一個流行的具有許多高級功能的 HTM / HTML 編輯器是 Adobe Dreamweaver ,不過它是收費的。
雖然 Windows 系統自帶的記事本等簡單的文本編輯器的功能不如專用的 HTM 編輯器那么豐富,但是對 HTM 或 HTML 文件進行簡單編輯修改還是可以的。不過,W3Cschool還是建議大家使用專用的編輯器,如 WebStorm、VS Code 等,它具更多專業功能。
這是一個非常簡單的 HTML 頁面以文本形式顯示的示例:
源碼:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>什么是HTM或HTML文件? - 編程獅(w3cschool.cn)</title>
</head>
<body>
<h1>什么是HTM或HTML文件?</h1>
<p>HTM / HTML 文件是超文本標記語言(Hyper Text Markup Language)文件,是 Internet 上的標準網頁文件類型。</p>
<p>由于 HTM 文件是純文本文件,因此它們僅包含文本(例如您現在正在閱讀的內容)以及對其他外部文件的文本*引用*(例如本文中的配圖)。</p>
<p>HTM 和 HTML 文件還可以引用其他文件,例如視頻,CSS 或 JS 文件。</p>
</body>
</html>
當 Web 瀏覽器呈現信息時,HTML 文件的源代碼被“轉換”為真實的網頁(盡管源代碼已很精簡了)。
HTM 文件以特定的語法(規則)構成,以使其中的代碼和文本在瀏覽器中打開時能夠正確顯示。因此,將 HTM / HTML 文件轉換為另一種格式可能會丟失頁面上的所有功能。
如果你想要做的是將一個 HTM / HTML 文件轉換為方便離線查看的文件,這時圖片或 PDF 格式會方便很多。
在 Chrome 中,鼠標右鍵單擊網頁,出現的選項菜單中進入 “打印(P)...”(快捷鍵:CTRL + P) ,在打印選項中選擇另存為 PDF,以將窗口中的頁面轉換為 PDF 文件。Chrome 瀏覽器的擴展功能也稱為“全屏截屏”,可將 Chrome 瀏覽器中所有打開的 HTM / HTML 文件轉換為 PNG 文件。
其他瀏覽器具有類似的功能,例如 Firefox 的 “另存為 PDF” 加載項。
您也可以使用專門用于 HTM / HTML 進行圖像文件轉換的網站,例如iWeb2Shot 或Web-capture 。
一個免費的文件轉換器可以用來轉換并保存 HTM / HTML 文件到您的計算機。如 FileZigZag 是一個免費的文檔轉換器網站,可將 HTM 轉換為RTF,EPS,CSV,PDF 和許多其他格式。
HTM / HTML 文件不能轉換為文本文件格式以外的任何格式。例如,HTML 文件永遠不能轉換為 MP3 音頻文件。
HTML / HTM 文件應該很容易打開,因為它們只是任何 Web 瀏覽器都可以查看的文本文件。如果您的文件沒有從上面建議的任何程序打開,則很有可能正在打開的這個文件并非超文本標記語言文件。
某些文件格式使用的文件擴展名與 HTML / HTM 非常相似,但實際上并非相同。一個主要的示例是用于壓縮 HTML 電子書文件的 HTMLZ 文件擴展名。有 HTML 文件在內的 HTMLZ 文件,但整個包的格式為 ZIP,不會在 Web 瀏覽器或文本編輯器打開。
在此示例中,您需要特定的 HTMLZ 文件查看器,例如Caliber 。或者,由于此文件格式實際上是存檔,因此您可以使用 7-Zip 之類的文件解壓縮器將其打開,然后您可以使用網絡瀏覽器或上述任何其他 HTML 查看器/編輯器打開任何單獨的 HTML 文件。
TMLANGUAGE 是另一個可能與 HTML / HTM 文件混淆的文件擴展名。這些實際上是TextMate 用于 macOS 的 TextMate 語言語法文件。
以上就是編程獅W3Cschool為你整理的關于《什么是HTM或HTML文件?如何打開、編輯和轉換HTM和HTML文件?》的全部內容,現希望可以幫到你~
*請認真填寫需求信息,我們會在24小時內與您取得聯系。