注入攻擊一般指用戶輸入數(shù)據(jù)導致頁面乃至整個網(wǎng)站、服務(wù)器異常的情況。
直接看一個例子:
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
</head>
<body>
<p>
<script type="text/javascript">
for (var i = 100; i >= 0; i--) {
alert('著了'+i);
}
</script>
</p>
</body>
</html>
頁面上的<script>被無情的執(zhí)行了。試想,如果提供一個表單輸入,提供用戶評論使用,假設(shè)評論的內(nèi)容就是<p>標簽中的整個<script>代碼,那么所有正在瀏覽該評論頁面的用戶都會被小小的alert()擊潰。
所以,我們在接受到來自用戶輸入的的信息時,需要進行防注入攻擊處理,比如上面這種情況,我們就需要將<、>這種HTML實體字符進行轉(zhuǎn)譯再輸出到頁面。
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
</head>
<body>
<p>
<script type="text/javascript">
for (var i = 100; i >= 0; i--) {
alert('著了'+i);
}
</script>
</p>
</body>
</html>
打開就是這種效果:
