透過把SQL 指令插入到Web 表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL 指令。
防禦:先過濾,然後進行參數綁定。
#Cross Site Scripting 跨站腳本
原理:以不同方式給予網頁嵌入腳本,以達到攻擊目的。
防禦:過濾輸入。
$id = (int) $_REQUEST['id'];if( $id > 0 ){}
$name = htmlentities($_REQUEST['name'], ENT_QUOTES, "UTF-8");// 注意,如果这里不进行转化也是可以的,// 只要在输出的时候进行转化(建立在已经参数绑定的情况下)。
#Cross-site request forgery 跨站請求偽造
#原理:Helen 登入了微博後又瀏覽了一個有害站點,有害站點上偽造了一個post 微博,這時候Helen 就在不知情的情況下發了一條微博。
防禦:微博頁面中嵌入一個隨機 token ,微博伺服器端驗證 token 值。
#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
#透過把SQL 指令插入到Web 表單提交或輸入網域或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL 指令。
防禦:先過濾,然後進行參數綁定。
#Cross Site Scripting 跨站腳本
原理:以不同方式給予網頁嵌入腳本,以達到攻擊目的。
防禦:過濾輸入。
$id = (int) $_REQUEST['id'];if( $id > 0 ){}
$name = htmlentities($_REQUEST['name'], ENT_QUOTES, "UTF-8");// 注意,如果这里不进行转化也是可以的,// 只要在输出的时候进行转化(建立在已经参数绑定的情况下)。
#Cross-site request forgery 跨站請求偽造
#原理:Helen 登入了微博後又瀏覽了一個有害站點,有害站點上偽造了一個post 微博,這時候Helen 就在不知情的情況下發了一條微博。
防禦:微博頁面中嵌入一個隨機 token ,微博伺服器端驗證 token 值。
#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
相关推荐:
以上是php安全實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!