As we’ve mentioned in our previous post about PHP scripting and its advantages for developing dynamic database drive websites and web applications, we are now discussing the security issues related to PHP scripting when mediocre developers loosely code your applications.
PHP is a powerful server-side scripting language for developing web applications and dynamic websites. It is used by websites such as Facebook, baidu, Wikipedia and pinterest due its simplicity, object oriented programming capabilities and ability to run on any OS (operating system) platform. But PHP can put you in serious trouble if you are not aware about the security vulnerabilities and issues while developing or outsourcing your PHP web applications or website development work to some mediocre developers. Let’s have a look at top 5 security issues with PHP that must be addressed while developing a PHP web application or a dynamic PHP website:
- The most common vulnerability in PHP web application is SQL injection: It is the most common and the number one security threat to your website or PHP web application. SQL injection is an attack where malicious user injects a malicious SQL command into an SQL statement through web forms on your website or application or any other web page input. The injected SQL command may then alter the SQL statement and pose severe threat to your website of application.
- The second most common security vulnerability is XSS or Cross Site Scripting: XSS attacks happen when a malicious user tries to execute a JavaScript or HTML code into the output of your PHP script. E.g. if a PHP super global variable such as $_SERVER[“PHP_SELF”] is used in a PHP script then it can be used by the attackers easily to redirect a user to a different file or server and the malicious JavaScript code then executes and saves the user submitted information contained in the form to a different server or file.
- The third but not very common security threat is the Source Code Revelation: Imagine a situation when others (mischievous user) can see your PHP code as in a plain text file. Of course you must be thinking it’s not possible because PHP is server-side and all the code resides on a remote server but in case of a breakdown in Apache’s configuration, it is possible that all your source code appears as plain text file and it may contain sensitive information such as your database credentials. You can easily protect yourself from this threat by setting up your directory structure properly and keeping sensitive files out of the public directory.
- Another security issue with PHP which is often ignored is of the Remote File Inclusion: Imagine a situation where some malicious piece of code gets included into your application’s script that you do not want and it executes and damages your entire application. Then someone visiting your website or application either gets some altered information a broken application or script. You can fix this issue by making some changes into your php.ini file for these flags:
allow_url_fopen – this allows or disallows the inclusion of remote files. The default is set to ‘on’ but you can turn it off.
allow_url_include – By default, allow_url_include is disabled. It is strongly recommend keeping it disabled. It is still recommend disabling allow_url_fopen as well, if you are confident in secure coding practices and about your programming standards you may want to leave allow_url_fopen enabled.
- Another very important security issue that shouldn’t be missed is Session Hijacking: It is arguably the most common session attack where a user tries to gain unauthorized access to another user’s session. Session ID’s are commonly stolen through XSS or cross site scripting attacks that is discussed above.
Looking for top-notch PHP development services or high-end software engineering services, call us on +1(205)624 7254, for Europe +44(203)695 0021 or leave us a message. Our client relationship associate will be in touch with you shortly.
I’m really enjoying the design and layout of your website. Outstanding research and insights shared on securing a PHP application!