11.28 限定某個目錄禁止解析php 11.29 限制user_agent 11.30/11.31 php相關配置

11.28 限定某個目錄禁止解析php

核心配置文件內容php

<Directory /data/wwwroot/110.com/upload>
    php_admin_flag engine off
</Directory>

curl測試時直接返回了php源代碼,並未解析程序員

加一層 FilesMatch 的限制更好, 若是不加, 則會訪問到原代碼shell

11.29 限制user_agent

爲了防止cc攻擊apache

user_agent能夠理解爲瀏覽器標識瀏覽器

核心配置文件內容php7

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR]
        RewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC]
        RewriteRule  .*  -  [F]
</IfModule>

F Forbidden的意思curl

NC 忽略大小寫, OR 或者 , 匹配1or2socket

curl -A "123123" 指定user_agent函數

cul 經常使用選項:測試

-A 指定 user_agent

-x 至關於省略了hosts

-I 只返回狀態碼, 不返回內容

-e 指定 referer , 必須 http:// 開頭 //從網頁1訪問到網頁2, 網頁2的referer就是"網頁1的地址"

11.30/11.31 php相關配置

查看php配置文件位置

此方法不是很準確, 最正確的方法是去你的網站底下建立一個phpinfo的php文件, 經過php文件查看

/usr/local/php7/bin/php -i|grep -i "loaded configuration file"

php.ini 經常使用配置

date.timezone=Asia/Shanghai

禁用危險函數, 搜索disable_functions , phpinfo 本身加上 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,phpinfo

display_errors=off //是否在頁面上顯示錯誤 若是否, 需定義log_errors

log_errors=on //錯誤日誌是否開啓 若是是, 則需定義 log_errors 和 error_log , error_reporting

error_log = /tmp/php_errors.log //定義錯誤日誌的路徑

error_reporting=E_ALL & ~E_NOTICE //錯誤日誌記錄的級別,

若是程序員在php代碼中定義了錯誤日誌不輸出, 則也不會輸出錯誤日誌

定義錯誤日誌完成後要用: /usr/local/apache2.4/bin/apachectl graceful ,而後會生成錯誤日誌文件 /tmp/php_errors.log

保險的話也能夠本身先建立錯誤日誌文件並設置權限:

touch /tmp/php_errors.log

chmod 666 /tmp/php_errors.log

日誌是以deamon進程的身份去進行的, 有時候定義了一個錯誤日誌, 但日誌始終沒有生成, 要檢查定義了錯誤日誌的所在目錄有沒有寫權限,並且寫文件人它是deamon

相關文章
相關標籤/搜索