disable_functions phpinfo not disable main but disable subfo

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

samyuranun
PHP Jr. Member
PHP Jr. Member
Posts: 18
Joined: 01/01/1970 7:00 am

disable_functions phpinfo not disable main but disable subfo

Post by samyuranun » 16/12/2008 4:29 am

ปกติแล้วถ้าจะใช้ disable_functions ต้องทำ disable_functions phpinfo
(ใช้ทดสอบจาก phpinfo ดูง่ายดี)
อยากให้ตัดหลักทำงานได้ตามปกติแต่จะแบ่งให้ user ให้ พื้นที่เราทำโฮส(ให้นักศึกษาให้ฟรี)แต่กลับจะดีนักศึกษาเห็นช่องโหว่เรา ก็เลยจะปิดซะแต่ดันปิดไม่ถูกถ้าปิดของเราก็ไปปิดของทั้งหมด เราก็แย่ด้วยเพราะต้องให้ functions หลายตัวทำงาน


ตัวที่ทดสอบก็ตัว phpinfo.php


+หลัก
index.php
register.php
...
//อันหลักๆข้างนอกพวกนี้ต้อง exec ได้


+users //พื้นที่ให้ user ข้างในนี้ห้ามให้สิทธิ โดย disable_functions "shell_exec,exec,virtual,passthru,proc_close,proc_get_status,proc_open,proc_terminate,system"
+user a
+user b
+...

ช่วยคิดกันหน่อยนะครับ ผมปวดหัวแย่ละ

รูปแบบปกติ คือปิดทั้งเว็บ
C:\WINDOWS\php.ini
disable_functions =phpinfo


C:\AppServ\Apache2.2\conf\extra\httpd-vhosts.conf
<VirtualHost *:80>
ServerName sam.com
DocumentRoot "C:/AppServ/www"
RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www|ftp|mail).sam.com
RewriteCond %{HTTP_HOST} ^(.*).sam.com
RewriteRule (.*) /users/%1/ [L]

</VirtualHost>

๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒๒
แต่ มันกินไปทั้วเว็บจะทำไงดี

<VirtualHost *:80>
ServerName sam.com
DocumentRoot "C:/AppServ/www"

php_value enable_functions phpinfo //จะหาวิธี ประมาณเนี้ยก็ไม่มี

</VirtualHost>

<VirtualHost *:80>
ServerName *.sam.com
DocumentRoot "C:/AppServ/www"
RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www|ftp|mail).sam.com
RewriteCond %{HTTP_HOST} ^(.*).sam.com
RewriteRule (.*) /users/%1/ [L]
</VirtualHost>

หรือ

<VirtualHost *:80>
ServerName sam.com
DocumentRoot "C:/AppServ/www"


</VirtualHost>

<VirtualHost *:80>
ServerName *.sam.com
DocumentRoot "C:/AppServ/www"
RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www|ftp|mail).sam.com
RewriteCond %{HTTP_HOST} ^(.*).sam.com
RewriteRule (.*) /users/%1/ [L]

php_admin_value disable_functions phpinfo //วิธีนี้ไม่มีไรเกิดขึ้นเลย

</VirtualHost>

ก็ไม่ได้ซักที


เห็นเว็บ http://www.apachelounge.com/viewtopic.php?p=52

Here is an example part of one of my vhost entry files:
Code:

<VirtualHost *>
ServerName www.domain.com
ServerAlias domain.com www.domain2.com www.domain3.com
DocumentRoot x:/www/dir1/dir2/
php_admin_value disable_functions "shell_exec,passthru,proc_close,proc_get_status,proc_open,proc_terminate,system"
php_admin_value max_execution_time "120"
php_admin_value memory_limit "16M"
php_admin_value session.use_only_cookies "0"
php_admin_value magic_quotes_gpc "Off"
php_admin_value session.auto_start "1"
php_admin_value session.cookie_lifetime "0"
php_admin_value session.cache_expire "320"
</VirtualHost>

<VirtualHost *>
ServerName sub.domain.com
DocumentRoot x:/www/sub_domain/
php_admin_value disable_functions "shell_exec,exec,virtual,passthru,proc_close,proc_get_status,proc_open,proc_terminate,system"
php_admin_value max_execution_time "30"
php_admin_value memory_limit "8M"
php_admin_value post_max_size "2M"
php_admin_value upload_tmp_dir "x:/www/sub_domain/tmp/"
</VirtualHost>

<VirtualHost *>
ServerName sub2.domain.com
DocumentRoot x:/www/sub2_domain/dir/
php_admin_value disable_functions "shell_exec,exec,virtual,passthru,proc_close,proc_get_status,proc_open,proc_terminate,system"
php_admin_value max_execution_time "60"
php_admin_value memory_limit "2M"
php_admin_value post_max_size "1M"
</VirtualHost>

<VirtualHost *>
ServerName www.domain4.com
ServerAlias domain4.com *.domain4.com domain4.domain.com
DocumentRoot x:/www/domain4/
php_admin_value disable_functions "shell_exec,exec,virtual,passthru,proc_close,proc_get_status,proc_open,proc_terminate,system"
php_admin_value open_basedir "x:/www/domain4/"
php_admin_value upload_tmp_dir "x:/www/domain4/tmp/"
php_admin_value session.use_only_cookies "1"
</VirtualHost>


In my httpd.conf file I have the follwing:
Code:
###### get vhosts ######
NameVirtualHost *
Include conf/domain_list_1.conf
Include conf/domain_list_2.conf
Include conf/domain_list_3.conf
Include conf/domain_list_4.conf
######################
This bit "includes" the domain info so that I don't have a massive 4000 line httpd.conf file.

= = = = = = = = = = = = = = = = = = = =
For you though, it does NOT matter where the ROOT directory for the server is, when you set up your vhosts. So, try something like this:
Code:
NameVirtualHost *
<VirtualHost *>
ServerName www.domain1.com
ServerAlias domain1.com *.domain1.com
DocumentRoot x:/www/domain1/
</VirtualHost>

<VirtualHost *>
ServerName www.domain2.com
ServerAlias domain2.com *domain2.com
DocumentRoot x:/www/domain2/
</VirtualHost>

samyuranun
PHP Jr. Member
PHP Jr. Member
Posts: 18
Joined: 01/01/1970 7:00 am

Re: disable_functions phpinfo not disable main but disable subfo

Post by samyuranun » 17/12/2008 3:45 am

ช่วยกันคิดหน่อยครับ

Post Reply

Return to “Programming - PHP”

Users browsing this forum: No registered users and 21 guests