PHP ist eine der am weitesten verbreiteten Skript-Programmiersprachen. Der Marktanteil sagt Bände über seine beherrschende Stellung. Die Tatsache, dass PHP 7 eingeführt wurde, macht diese Programmiersprache für aktuelle Entwickler noch attraktiver. Trotz einiger Änderungen stehen viele Entwickler der Zukunft von PHP skeptisch gegenüber. Ein Grund ist die Sicherheit von PHP.
Die Sicherheit von PHP ist für Entwickler ein großes Anliegen. Obwohl PHP von innen heraus solide Sicherheit bietet, liegt es an den Entwicklern, diese Sicherheitsmechanismen richtig zu implementieren. In diesem Artikel stellen wir mehrere PHP-Sicherheitspunkte für Linux-Administratoren vor. Diese Punkte helfen Ihnen, Ihre Webanwendung zu sichern und sicherzustellen, dass sie langfristig ordnungsgemäß funktioniert.
Bevor wir beginnen, ist es notwendig, das System zu verstehen, mit dem wir es zu tun haben. Zu Demonstrationszwecken verwenden wir Fedora. Diese Punkte sollten jedoch für Ubuntu-Versionen oder jede andere Linux-Distribution gelten. Weitere Informationen finden Sie im Handbuch Ihrer Betriebssystemdistribution.
Schauen wir uns einige Schlüsseldateien unserer Systemumgebung genauer an. Ihre Datei sollte wie folgt aussehen oder diesem entsprechen:
Standard-Webserver: Apache
DocumentRoot: /var/www/html
PHP-Konfigurationsdatei: /etc/php.ini
Erweitertes Konfigurationsverzeichnis: /etc/php.d/
Sicherheitsdatei: /etc/php.d/security.ini
Mit diesen Tipps schützen Sie Ihre Website vor verschiedenen Arten häufiger Angriffe wie SQL-Injection, XSS, Cross-Site-Request-Forgery, eval() und Datei-Upload-Angriffen. Eine Liste häufiger Angriffe finden Sie hier (https://www.sitepoint.com/top-10-php-security-vulnerabilities/).
1. Löschen Sie nicht benötigte Module.
PHP verfügt über integrierte PHP-Module. Sie sind für viele Aufgaben nützlich, aber nicht jedes Projekt erfordert sie. Geben Sie einfach den folgenden Befehl ein, um die verfügbaren PHP-Module anzuzeigen:
# php - m
Nachdem Sie die Liste überprüft haben, können Sie nun unnötige Module entfernen. Die Reduzierung der Anzahl der Module trägt dazu bei, die Leistung und Sicherheit der Webanwendungen, an denen Sie arbeiten, zu verbessern.
2. Begrenzen Sie den Verlust von PHP-Informationen.
Es kommt häufig vor, dass Plattformen kritische Informationen preisgeben. PHP gibt beispielsweise Informationen wie die Version und die Tatsache, dass es auf dem Server installiert wurde, preis. Dies kann über den Befehl „exposure_php“ erreicht werden. Um Lecks zu verhindern, müssen Sie diesen Befehl in /etc/php.d/security.ini deaktivieren.
expose_php=Off
Wenn Sie die Version und ihren Status wissen möchten, führen Sie einfach einen einfachen Curl-Befehl für die Website-Adresse aus, um diese Informationen zu erhalten.
Curl - I http://www.livecoding.tv/index.php
Der vorherige Befehl gibt die folgenden Informationen zurück:
HTTP/1.1 200 OK X-Powered-By: PHP/7.0.10 Content-type: text/html; charset=UTF-8
3. Deaktivieren Sie die Remotecodeausführung.
Die Remotecodeausführung ist eine der häufigsten Sicherheitslücken in PHP-Sicherheitssystemen. Standardmäßig ist die Remotecodeausführung auf Ihrem System aktiviert. Mit dem Befehl „allow_url_fopen“ können Funktionen wie „require“, „include“ oder URL-fähige Fopen-Wrapper direkt auf PHP-Dateien zugreifen. Der Fernzugriff wird durch die Verwendung von HTTP- oder FTP-Protokollen erreicht, was dazu führt, dass das System nicht in der Lage ist, Sicherheitslücken durch Code-Injection abzuwehren.
Um sicherzustellen, dass Ihr System sicher und vor Remote-Codeausführung geschützt ist, können Sie diesen Befehl wie unten gezeigt auf „Aus“ setzen:
Allow_url_fopen=Off allow_url_include=Off
4. PHP-Fehler protokollieren.
Eine weitere einfache Möglichkeit, die Sicherheit Ihrer Webanwendung zu erhöhen, besteht darin, den Besuchern keine Fehler anzuzeigen. Dadurch wird sichergestellt, dass Hacker die Sicherheit der Website überhaupt nicht gefährden können. Es muss in der Datei /etc/php.d/security.ini bearbeitet werden.
display_errors=Off
Jetzt denken Sie vielleicht: Nach Abschluss dieses Schritts: „Wie kann ein Entwickler ohne die Hilfe von Fehlermeldungen debuggen?“ Entwickler können zum Debuggen den Befehl log_errors verwenden. Sie müssen lediglich den Befehl log_errors in der Datei security.ini auf „Ein“ setzen.
log_errors=On error_log=/var/log/httpd/php_scripts_error.log
5. Ressourcen angemessen kontrollieren.
Um die Sicherheit Ihrer Anwendung zu gewährleisten, ist es wichtig, die Ressourcen zu kontrollieren. Um eine ordnungsgemäße Ausführung und Sicherheit zu gewährleisten, müssen Sie die Ausführung von PHP-Skripten einschränken. Darüber hinaus sollte die Zeit, die für das Parsen von Anforderungsdaten aufgewendet wird, begrenzt sein. Wenn die Ausführungszeit gesteuert wird, sollten auch andere vom Skript verwendete Ressourcen wie der Speicher entsprechend konfiguriert werden. Alle diese Metriken können durch Bearbeiten der Datei security.ini verwaltet werden.
# set in seconds max_execution_time = 25 max_input_time = 25 memory_limit = 30M
6. Gefährliche PHP-Funktionen deaktivieren
PHP bringt nützliche Funktionen für die Entwicklung mit, es gibt aber auch eine Vielzahl von Funktionen, die von Hackern zum Einbruch in Webanwendungen genutzt werden können. Das Deaktivieren dieser Funktionen verbessert die allgemeine Sicherheit und stellt sicher, dass Sie keinen gefährlichen PHP-Funktionen ausgesetzt sind.
Dazu müssen Sie zunächst die Datei php.ini bearbeiten. Suchen Sie in der Datei nach dem Befehl „disable_functions“ und deaktivieren Sie die darin enthaltenen gefährlichen Funktionen. Dazu kopieren Sie einfach den folgenden Code und fügen ihn ein.
disable_functions =exec,passthru, shell_exec,system,proc_open,popen,curl_exec, curl_multi_exec,parse_ini_file,show_source
Weitere Informationen zum Deaktivieren gefährlicher PHP-Funktionen finden Sie hier (//m.sbmmt.com/).
7. Dateien hochladen.
如果你的应用程序不需要上传任何文件,禁用上传文件的功能有助于提高安全。想禁止用户上传文件,只需要编辑/etc/php.d/目录下的security.ini文件,将file_uploads命令设成OFF。
file_uploads=Off
8. 保持版本最新。
开发人员在24/7不间断地工作,给你使用的技术打上补丁。PHP也是一样。由于它有一个开源社区,补丁和修正版定期发布。更新版还为首日漏洞及其他安全漏洞提供了安全补丁。如果你注重应用程序的安全性,就要始终确保你的PHP解决方案是最新版本。另外,给其他相关技术打上最新的补丁可以确保最大限度的安全。
9.控制文件系统访问。
默认情况下,PHP可使用fopen()等函数来访问文件。open_basedir命令提供了访问。首先,始终要将open_basedir命令设成/var/www/html目录。将它设成其他任何目录会导致安全问题。
open_basedir="/var/www/html/"
10. 控制POST大小。
我们的最后一个PHP安全要点是控制POST大小函数。HTTP POST函数使用客户端的浏览器,将数据发送到Web服务器。比如说,用户可能上传证书,然后发送到Web浏览器以便处理。一切都运行顺畅,直到有一天黑客企图发送庞大的文件来耗尽服务器资源。这很可能会导致服务器崩溃或响应缓慢。为了保护服务器远离这个漏洞,就需要设置POST大小。POST大小可以在/etc/php.d/security.ini文件里面加以设置。
post_max_size=1k
结束语
安全是广大Web开发人员和Linux管理员最关注的问题之一。如果采取了上述要点,你势必可以加强开发环境和PHP Web应用程序方面的安全。要是你认为我们遗漏了重要的内容,欢迎留言补充。
以上就是详细介绍Linux管理员不可不知十大PHP安全要点的详情的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!