優化 Sql注入和Html注入的黑帽SEO

2021-06-05 21:08:22 字數 1174 閱讀 7166

黑帽(black hat)seo主要是指採取「不怎麼道德」(暫時就這麼形容吧!)的方式進行搜尋引擎優化。

首先,在頁面宣告中新增兩個屬性設定enableeventvalidation=「false」 validaterequest=「false」 ,這很關鍵,讀者可以試一下如果不這樣設定會有什麼效果。

然後,前台頁面和後台**段分別如下:

asp:textbox>

asp:label>

protected void btnsubmit_click(object sender, eventargs e)

程式很簡單,將使用者輸入的內容再顯示出來而已。執行**,然後輸入我們的惡意**,提交。

sanitizing

我們會發現頁面自動跳轉到頁面!這就是所謂的「html注入」。當page頁面render到客戶端後,瀏覽器會按乙個普通的html頁面進行解析;當解析到上面的js**時……

為了避免這種入侵,在asp.net中,我們最簡單的處理方式就是對輸入的內容進行「html編碼」。將後台**改為:

protected void btnsubmit_click(object sender, eventargs e)

現在我們再執行**,發現源**被原樣輸出顯示在頁面,並沒有執行。為什麼呢?檢視輸出頁面的源**:

sanitizing

>  --  >  (greater than)

"  --  "   (quota)

所以js無法執行,但在頁面顯示時,我們確能看到「原汁原味」的js內容。

但問題並沒有結束,現實世界中,輸入的內容除了惡意**以外,還可能有如下的內容:

黑帽span>(black hat)seo主要是指採取「不怎麼道德」span>(暫時就這麼形容吧!)的方式進行搜尋引擎優化。

我們希望顯示藍色的文字,但經過編碼後,顯然無法達到我們的效果。為此,我們還需要進行更精確的過濾。這也是為什麼之前我們要設定enableeventvalidation=「false」 validaterequest=「false」的現實原因。

其實我最先想到的方案是:首先對整個內容進行編碼,然後把我們允許使用的html標籤再替換回來。這樣是相當保險的,但是在具體的操作中,遇到了很多問題,這個鬱悶啊~~~(如果有誰有這種實現的實現**,千萬要拿出來大家分享一下呀)。

我先介紹另一種方案:

首先要取出標籤,如,、和 【關閉視窗】

SQL注入 報錯注入

乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...

SQL注入 報錯注入

sql注入基礎 盲注 用於注入結果無回顯但錯誤資訊有輸出的情況 floor函式 返回小於等於某值的整數,例如floor 1 則返回1,floor 1.9 也返回1 rand函式 生成隨機數.可指定seed,指定後每次生成的數都一樣即偽隨機,不指定seed則每次生成的隨機數都不一樣.通過floor和r...

SQL注入 報錯注入

利用 mysql select 1 from select count concat version floor rand 0 2 x from information schema.tables group by x a error 1062 23000 duplicate entry 5.1.4...