JavaScript 页面重定向

2021-06-04 12:00 更新

1.3.1【必须】限定跳转目标地址

  • 使用白名单,限定重定向地址的协议前缀(默认只允许HTTP、HTTPS)、域名(默认只允许公司根域),或指定为固定值;

  • 适用场景包括,使用函数方法:location.hrefwindow.open()location.assign()location.replace();赋值或更新HTML属性:a.hrefifame.srcform.actionembed.srcobject.datalink.hrefarea.hrefinput.formactionbutton.formaction

  1. // bad: 跳转至外部可控的不可信地址
  2. const sTargetUrl = getURLParam("target");
  3. location.replace(sTargetUrl);
  4. // good: 白名单限定重定向地址
  5. function validURL(sUrl) {
  6. return !!((/^(https?:\/\/)?[\w\-.]+\.(qq|tencent)\.com($|\/|\\)/i).test(sUrl) || (/^[\w][\w/.\-_%]+$/i).test(sUrl) || (/^[/\\][^/\\]/i).test(sUrl));
  7. }
  8. const sTargetUrl = getURLParam("target");
  9. if (validURL(sTargetUrl)) {
  10. location.replace(sTargetUrl);
  11. }
  12. // good: 制定重定向地址为固定值
  13. const sTargetUrl = "http://www.qq.com";
  14. location.replace(sTargetUrl);
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号