PhpSecInfo Test Information
This test checks to see if allow_url_fopen is enabled.
If enabled, allow_url_fopen allows PHP's file functions -- such as
file_get_contents() and the
require statements -- can retrieve data from remote locations, like an FTP or web site. Programmers frequently forget this and don't do proper input filtering when passing user-provided data to these functions, opening them up to code injection vulnerabilities. A large number of code injection vulnerabilities reported in PHP-based web applications are caused by the combination of enabling allow_url_fopen and bad input filtering.
allow_url_fopen is on by default.
You should disable allow_url_fopen in the php.ini file:
; Disable allow_url_fopen for security reasons allow_url_fopen = 'off'
The setting can also be disabled in apache's httpd.conf file:
# Disable allow_url_fopen for security reasons php_flag allow_url_fopen off
For remote file access, consider using the cURL functions that PHP provides.
- PHP.net manual: allow_url_fopen
- PHP.net manual: Using remote files
- PHP.net manual: CURL, Client URL Library Functions