""" React 框架安全知识 """ from ..base import KnowledgeDocument, KnowledgeCategory REACT_SECURITY = KnowledgeDocument( id="framework_react", title="React Security", category=KnowledgeCategory.FRAMEWORK, tags=["react", "javascript", "frontend", "jsx"], content=""" React 默认对XSS有较好的防护,但仍有一些需要注意的安全问题。 ## 安全特性 1. JSX自动转义 2. 虚拟DOM隔离 ## 常见漏洞模式 ### dangerouslySetInnerHTML ```jsx // 危险 - 直接渲染HTML function Comment({ content }) { return
; } // 安全 - 使用DOMPurify import DOMPurify from 'dompurify'; function Comment({ content }) { return
; } ``` ### href/src注入 ```jsx // 危险 - javascript:协议 function Link({ url }) { return Click; // 攻击: url = "javascript:alert('XSS')" } // 安全 - 验证协议 function Link({ url }) { const safeUrl = url.startsWith('http') ? url : '#'; return Click; } ``` ### eval和Function ```jsx // 危险 function Calculator({ expression }) { const result = eval(expression); // RCE风险 return
{result}
; } // 安全 - 使用安全的表达式解析器 import { evaluate } from 'mathjs'; function Calculator({ expression }) { const result = evaluate(expression); return
{result}
; } ``` ### 服务端渲染(SSR) XSS ```jsx // 危险 - Next.js中 export async function getServerSideProps({ query }) { return { props: { search: query.q // 未转义 } }; } // 页面中 function Page({ search }) { return