PHP Configuration Cheat Sheet
This page is part of the PHP Security Cheat Sheet, for developers and administrators. It describes secure configuration of PHP and its platform.
..: Work in Progress :..
Web Server Configuration
Apache
suPHP
suPHP makes every php script run as its file owner. This way you are allowed to upload and modify files in your folders without needing to chmod 777 any folder, which is very bad security practice and will let to your files be compromised easily. Install and configure it on your web server.
PHP Configuration and Deployment
suhosin
Consider using Suhosin (Stefan Esser's [Hardened PHP patch]) if you want to patch many custom security flaws in various parts of PHP.
php.ini
Note that some of following settings need to be adapted to your system, in particular
/path/
and /application/
. Also read the PHP Manual according dependencies of some settings.PHP error handlling
expose_php = Off error_reporting = E_ALL display_errors = Off display_startup_errors = Off log_errors = On error_log = /valid_path/PHP-logs/php_error.log ignore_repeated_errors = Off
Keep in mind that you need to have display_errors off on a production server and it's a good idea to frequently notice the logs.
PHP general settings
doc_root = /path/DocumentRoot/PHP-scripts/ open_basedir = /path/DocumentRoot/PHP-scripts/ include_path = /path/PHP-pear/ extension_dir = /path/PHP-extensions/ mime_magic.magicfile = /path/PHP-magic.mime allow_url_fopen = Off allow_url_include = Off variables_order = "GPSE" allow_webdav_methods = Off
Allow_url_* prevents LFIs to be easily escalated to RFIs.
PHP file upload handling
file_uploads = On upload_tmp_dir = /path/PHP-uploads/ max_file_uploads = 2
It's a good idea to turn it off, if your application is not using file uploads.
PHP executable handling
enable_dl = On disable_functions = system, exec, shell_exec, passthru, phpinfo, show_source, popen, proc_open disable_functions = fopen_with_path, dbmopen, dbase_open, putenv, move_uploaded_file disable_functions = chdir, mkdir, rmdir, chmod, rename disable_functions = filepro, filepro_rowcount, filepro_retrieve, posix_mkfifo # see also: http://ir.php.net/features.safe-mode disable_classes =
These are dangerous PHP functions. You should disable all that you don't use.
PHP session handling
session.auto_start = Off session.save_path = /path/PHP-session/ session.name = myPHPSESSID session.hash_function = 1 session.hash_bits_per_character = 6 session.use_trans_sid = 0 session.cookie_domain = full.qualified.domain.name #session.cookie_path = /application/path/ session.cookie_lifetime = 0 session.cookie_secure = On session.cookie_httponly = 1 session.use_only_cookies= 1 session.cache_expire = 30 default_socket_timeout = 60
It is a good practice to change session.name to something new.
some more security paranoid checks
session.referer_check = /application/path memory_limit = 32M post_max_size = 32M max_execution_time = 60 report_memleaks = On track_errors = Off html_errors = Off
Your content on Ranorex tool is awesome. I gained many info on selenium testing tool. For Software course click below links
ReplyDeleteGerman Classes in Chennai
Big Data Training in Chennai
Android Training in Chennai
Selenium Training in Chennai
Digital Marketing Training in Chennai
web designing course in chennai
web designing course in Tambaram
web development courses in chennai
I am really inspired with your writing talents as well as with the layout on your blog. Is that this a paid theme or did you modify it yourself? Anyway stay up the excellent high quality writing, it's uncommon to look a great blog like this one nowadays..
ReplyDeleteGreat delivery. Sound arguments. Keep up the great effort.
ReplyDeleteWhat's up, just wanted to say, I liked this post. It was inspiring. Keep on posting!
ReplyDelete