security.js 880 B

12345678910111213141516
  1. import { session } from 'electron';
  2. // 设置内容安全策略(CSP),防止 XSS 攻击
  3. export function setContentSecurityPolicy(isDev) {
  4. session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
  5. const csp = isDev
  6. ? "default-src 'self'; script-src 'self' 'unsafe-inline' http://localhost:*; style-src 'self' 'unsafe-inline'; connect-src 'self' http://localhost:* ws://localhost:* https://ai-anim.com; img-src 'self' data: https: blob:; font-src 'self' data:; worker-src 'self' blob:;"
  7. : "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self' https://ai-anim.com; img-src 'self' data: https:; font-src 'self' data:;";
  8. const responseHeaders = Object.assign({}, details.responseHeaders);
  9. responseHeaders['Content-Security-Policy'] = [csp];
  10. callback({ responseHeaders });
  11. });
  12. }