Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung von PHP-Sicherheitsbeispielen
Durch Einfügen von SQL-Befehlen in das Webformular zum Senden oder Eingeben der Abfragezeichenfolge des Domänennamens oder der Seitenanforderung und schließlich Täuschen Sie den Server bei der Ausführung bösartiger SQL-Befehle.
Verteidigung: Zuerst filtern, dann Parameterbindung durchführen. 2. XSS Zwecke.
3. CSRF
Cross-Site Request Forgery
Prinzip: Helen hat sich bei Weibo angemeldet und dann eine schädliche Website durchsucht. Zu diesem Zeitpunkt hat Helen einen gefälschten Beitrag auf Weibo gepostet.
$id = (int) $_REQUEST['id'];if( $id > 0 ){}
$name = htmlentities($_REQUEST['name'], ENT_QUOTES, "UTF-8");// 注意,如果这里不进行转化也是可以的,// 只要在输出的时候进行转化(建立在已经参数绑定的情况下)。
4. Clickjacking
ClickJacking
Prinzip: Ungefähr da Es gibt zwei Möglichkeiten: Der Angreifer verwendet einen transparenten Iframe, der ihn auf einer Webseite abdeckt, und veranlasst dann den Benutzer, auf die Seite zu klicken, ohne es zu wissen Das andere ist, dass der Angreifer ein Bild verwendet, um die Webseite abzudecken und so den ursprünglichen Speicherort der Webseite blockiert.
5. Hochladen von Dateien
Grundsatz: Es können verschiedene Arten illegaler Software hochgeladen werden.
Verteidigung: Erkennungstyp, Erkennungsgröße.
// js if (top.location.hostname !== self.location.hostname) { alert("您正在访问不安全的页面,即将跳转到安全页面!"); top.location.href = self.location.href;}// Apache 配置:Header always append X-Frame-Options SAMEORIGIN// nginx 配置:add_header X-Frame-Options SAMEORIGIN;
Prinzip: Einige Zip-Dateien sehen sehr klein aus, sind aber nach der Dekomprimierung sehr groß
Verteidigung: Tun Sie dies nicht: Von Benutzern hochgeladene komprimierte Dateien dekomprimieren, verarbeiten und dann komprimieren. Denn beim Dekomprimieren ist Ihr Server wahrscheinlich überlastet.
Prinzip: Wenn Client und Server kommunizieren, fängt der Hacker das Paket ab und erhält es die sessionid und schließlich kommuniziert der Hacker mit dem Server.
Verteidigung: Legen Sie HttpOnly fest und setzen Sie die Sitzungs-ID von Zeit zu Zeit zurück.
9. Brute-Force-Cracking
Serversicherheit
$hashedPassword = password_hash('password', PASSWORD_DEFAULT);password_verify('the wrong password', $hashedPassword); // falsepassword_verify('my super cool password', $hashedPassword); // true
/**防御:1. 限制次数2. 验证码3. 防火墙分析 类似 fail2ban*/
vi /etc/ssh/sshd_configfirewall-cmd --list-allfirewall-cmd --add-port=8888/tcp --permanentfirewall-cmd --reload# 如果是阿里云服务器,不要忘记修改阿里云安全组
# 修改 mysql 数据库中的 user 表,然后 flush privileges
vi /etc/ssh/sshd_configPermitRootLogin
Verteidigung: Eingabe filtern.
Verteidigung: Betten Sie einen zufälligen Token in die Weibo-Seite ein und der Weibo-Server überprüft den Token-Wert.Cross-Site Request Forgery
Prinzip: Helen hat sich bei Weibo angemeldet und dann auf der schädlichen Website einen gefälschten Beitrag gepostet. Zu diesem Zeitpunkt hat Helen einen Weibo gepostet.
4. Clickjacking
ClickJacking
原理:大概有两种方式,一是攻击者使用一个透明的 iframe ,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明的 iframe 页面;二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置。
防御:使用 js 判断框架是否在同一个域名下。添加头部指令: X-Frame-Options。
// js if (top.location.hostname !== self.location.hostname) { alert("您正在访问不安全的页面,即将跳转到安全页面!"); top.location.href = self.location.href;}// Apache 配置:Header always append X-Frame-Options SAMEORIGIN// nginx 配置:add_header X-Frame-Options SAMEORIGIN;
原理:可能会被上传各种类型的非法软件。
防御:检测类型,检测大小。
原理:有些 zip 文件看起来很小,解压后非常大
防御:不要做这样的操作:对用户上传的压缩文件解压,处理,再压缩。因为你解压的时候,很可能你的服务器就被挤爆了。
原理:客户端和服务端通信时候,黑客抓包,获取 sessionid ,最终黑客与服务器通信。
防御:
设置 HttpOnly,时常重设 sessionid。
$hashedPassword = password_hash('password', PASSWORD_DEFAULT);password_verify('the wrong password', $hashedPassword); // falsepassword_verify('my super cool password', $hashedPassword); // true
/**防御:1. 限制次数2. 验证码3. 防火墙分析 类似 fail2ban*/
vi /etc/ssh/sshd_configfirewall-cmd --list-allfirewall-cmd --add-port=8888/tcp --permanentfirewall-cmd --reload# 如果是阿里云服务器,不要忘记修改阿里云安全组
# 修改 mysql 数据库中的 user 表,然后 flush privileges
vi /etc/ssh/sshd_configPermitRootLogin
相关推荐:
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von PHP-Sicherheitsbeispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!