react防止xss攻擊的方法:
react在渲染html內容和渲染dom屬性時都會將 "'&<>這幾個字符進行轉義,轉義部分源碼如下:
for (index = match.index; index < str.length; index++) {
switch (str.charCodeAt(index)) {
case 34: // "
escape = '"';
break;
case 38: // &
escape = '&';
break;
case 39: // '
escape = ''';
break;
case 60: // <
escape = '<';
break;
case 62: // >
escape = '>';
break;
default:
continue;
}
}
使用以上方法,惡意代碼在渲染到html前都被轉成了字符串,例如:
// 一段惡意代碼
<img src="empty.png" onerror ="alert('xss')">
// 轉義后輸出到 html 中
<img src="empty.png" onerror ="alert('xss')">