1. 程式人生 > >?十一周二次課(3月7日)

?十一周二次課(3月7日)

linux

十一周二次課(3月7日)
11.28 限定某個目錄禁止解析php

技術分享圖片

  • vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

  • 配置文件增加如下內容:
    <Directory /data/wwwroot/123.com/upload>
    php_admin_flag engine off
    </Directory>

技術分享圖片

技術分享圖片


  • 重新加載配置文件:
    /usr/local/apache2.4/bin/apachectl -t
    /usr/local/apache2.4/bin/apachectl graceful

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片




11.29 限制user_agent

技術分享圖片


  • 配置限制user_agent的方法:

  • vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

  • 配置文件增加如下內容:
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
    RewriteRule .* - [F]
    </IfModule>

  • 以上配置中:
    NC: 表示忽略大小寫
    OR: 表示或者之意,不寫則各行(條件)是並且的關系
    F: Forbidden之意,禁止訪問

技術分享圖片

  • 重新加載配置文件:
    /usr/local/apache2.4/bin/apachectl -t
    /usr/local/apache2.4/bin/apachectl graceful

測試

技術分享圖片

cure指定use-agent

技術分享圖片

技術分享圖片




11.30/11.31 php相關配置

技術分享圖片

查看php配置文件位置
/usr/local/php/bin/php -i|grep -i "loaded configuration file"

通過以上語句查到的有時未必正確,更可靠的方法是在站點(比如123.com)目錄下創建一個包含phpinfo()函數的php頁面,然後在瀏覽器中訪問它,從而來查看到配置文件位置.

技術分享圖片

技術分享圖片

技術分享圖片


技術分享圖片

重新加載配置

技術分享圖片

技術分享圖片

找到php配置文件後,就可編輯它來設置相關配置了

vi /usr/local/php7/etc/php.ini

技術分享圖片


安全相關配置--禁用以下函數,這樣即使被上轉木馬,由於相關函數已被禁用,它也無法執行.

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

技術分享圖片

phpinfo函數禁用

技術分享圖片

時區配置,設為Asia/Shanghai或者Asia/Chongqing
date.timezone = Asia/Shanghai

技術分享圖片


錯誤信息輸出off,不把錯誤信息輸出到瀏覽器中

display-errors=off

技術分享圖片

技術分享圖片

技術分享圖片

錯誤日誌相關配置--便利排障時查看,

錯誤日誌開啟

技術分享圖片

定義錯誤日誌路徑

技術分享圖片

定義錯誤日誌級別,all所有級別,生成環境中用error_reporting = E_ALL & ~E_NOTICE

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片


安全相關參數open_basedir

  • 這個設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,有效防止php木馬跨站運行。

  • 在Apache服務器中,切忌一定要在虛擬主機配置文件中添加以下代碼,否則PHP木馬腳本可以瀏覽你服務器上的任意文件,這意味著你的服務器很快會被攻破。

技術分享圖片


  • php.ini中的open_basedir參數是對所有的站點都適用的,假如服務器上只有一個站點,直接配置php.ini中的open_basedir參數是能起到作用,但如果不止一個站點,因為各個站點目錄不同,而php.ini中的open_basedir參數只能設置一處,

  • 這時就借助apache虛擬主機配置文件來針對特定站點設置open_basedir參數.

  • vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

  • 配置文件增加如下內容:
    php_admin_value open_basedir "/data/wwwroot/123.com:/tmp/"

技術分享圖片

不同主機分別限制

技術分享圖片


擴展
apache開啟壓縮 技術分享圖片http://ask.apelearn.com/question/5528
apache2.2到2.4配置文件變更 技術分享圖片http://ask.apelearn.com/question/7292
apache options參數 技術分享圖片http://ask.apelearn.com/question/1051
apache禁止trace或track防止xss 技術分享圖片http://ask.apelearn.com/question/1045
apache 配置https 支持ssl 技術分享圖片http://ask.apelearn.com/question/1029


?十一周二次課(3月7日)