View Single Post
  #2  
Old 04-23-2010, 07:25 AM
Angel-Wings's Avatar
Angel-Wings Angel-Wings is offline
 
Join Date: Sep 2007
Posts: 206
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Generally it isn't a good idea to let the same user that runs PHP scripts write anywhere in the webroot so 755 / 777 isn't a good (and safe) idea.
If you still want to store attachments in the filesystem put this directory outside the webroot, chown it the user running PHP and set it to 700.
Maybe a simple example:

/home/www/site/webroot - that's the folder your Webserver is serving

If you run PHP as user "example" and Apache is running under "www" - both group and user - the "webroot" can be set to 550 if example owns it and www is the group.

/home/www/site/uploads - folder where attachments belong - this directory isn't served by your Webserver

Set to 700 if "example" owns this directory.

If you still need to let PHP put files inside the webroot so you've folder left where PHP can write files, you can prevent PHP from parsing scripts there - as example:

Quote:
<Directory "/home/www/site/webroot/signaturepics">
php_flag Engine Off
</Directory>
Or when running FastCGI removing the Handler.

That's all just in case character filtering isn't done correctly so someone could put an executeable PHP script in your webroot to - well - from dumping your DB to abuse your machine for attacking other sites.

Just a note: changing permission for directories to 550 and to 440 for files may also prevent FTP from storing or changing files so these permissions would need to set back before chaning files through FTP.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01193 seconds
  • Memory Usage 1,764KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete