精华内容
下载资源
问答
  • URL重定向漏洞钓鱼

    2020-12-30 10:41:49
    URL重定向漏洞钓鱼 目录 URL重定向漏洞钓鱼 钓鱼攻击: 使用场景: 漏洞分析: 1. 成因: 2. 原理: 3. 常见的绕过手段: 5. 漏洞发生: 6. 漏洞总结: 风险级别: 高风险 风险描述: 攻击者可以将参数...

    URL重定向漏洞钓鱼

     

    目录

             钓鱼攻击:

    使用场景:

    漏洞分析:

    1. 成因:

    2. 原理:

    3. 常见的绕过手段:

    5. 漏洞发生:

    6. 漏洞总结:


    风险级别: 高风险
    风险描述: 攻击者可以将参数中URL值引入任意开发者的URL或者钓鱼网站;
    风险分析: 部分HTTP参数会保留URL值,这会导致Web应用程序将请求重定向到指定的URL,攻击者可以将URL改为恶意站点,从而启动钓鱼网站欺骗用户,窃取用户隐私;



    钓鱼攻击:

    模拟网站或者软件,几乎与官方的软件完全相同,连域名也十分相似。
    网络钓鱼是互联网上流行已久且行之有效的黑客攻击机制之一。这种攻击,通过诱导用户去访问钓鱼网站,进而获取用户数据信息,或是用恶意软件感染用户系统。



    使用场景:

    如今Web 登录很多都接入了QQ、微信、微博,新浪等第三方服务登录,以 QQ 第三方服务授权登录为例,在我们调用 QQ 授权服务器进行授权时,将会在参数中传入redirect_url(重定向)地址,告知 QQ 授权服务器,授权成功之后页面会跳转到这个地址,然后进行站点登录操作。但是如果你的重定向地址在传输过程中被篡改成了一个钓鱼网址,那么就是导致用户的授权信息被非法获取。

    当然,QQ 第三方登录,也有自己的策略,就是接入 QQ 第三方登录的应用,会在开发者平台,配置相关的跳转白名单(白名单限制),只有属于白名单中的域名,子域名或 url ,QQ授权服务器才跳转,如果发现 redirect_url 不合法,则跳转到非法页面。



    漏洞分析:

    1. 成因:

    对于URL跳转的实现一般会有以下几种实现方式:
    <1>HTML内meta标签内跳转
    <2>javascript跳转
    <3>header头跳转

    2. 原理:

    恶意用户借用URL跳转漏洞来欺骗安全意识低的用户,从而导致“中奖”,“游戏礼包”之类的欺诈,同时借助URL跳转,也可以突破常见的基于“白名单方式”的一些安全限制,对于大公司的域名及URL将直接允许通过并且显示会可信的URL,而一旦该URL里包含一些跳转漏洞将可能导致安全限制被绕过。



    3. 常见的绕过手段:

    3.1. 利用问号绕过限制:

    在这里插入图片描述

    3.2. 利用反斜杠和正斜杠绕过限制:

    在这里插入图片描述

    3.3. 利用@绕过URL限制:

    如:http://www.aaa.com/acb?Url=http://login.aaa.com@test.com后面的test.com就是要跳转到的域名,前面的域名都是用来辅助以绕过限制的;

    3.4. 利用#号绕过

    如:http://www.aaa.com/acb?Url=http://test.com#login.aaa.com

    3.5. 利用白名单缺陷绕过限制:

    在这里插入图片描述

    3.6. 多重验证&跳转绕过限制:
    在这里插入图片描述

    3.7. 点击触发绕过URL跳转限制(类似于点击劫持漏洞)
    3.8. 利用超链接绕过可信站点限制:

    在这里插入图片描述

    3.9. POST参数中的URL跳转:

    在这里插入图片描述

    4. 防御方式:

    在任何拼接重定向url的位置加入http://***/(附加绝对前缀)不将用户输入拼接入url尽量不要基于dom数据在客户端脚本进行重定向(类似dom型xss,避免数据不经服务器的安全验证)
    检测域名结尾是不是当前域名,正确话才会跳转!!!

    检测当前的域名字符串是否完整地存在要跳转过去的字符串中,是子字符串时才会跳转;

    另一种类似,如果程序的跳转白名单限制比较严格,只能是自己域的地址,这时需要有一个目标其它域的任意跳转漏洞,比如在url中添加自己的域地址;https://auth.landgrey.me/jump.do?url=evil.com,然后测试时:

    https://www.landgrey.me/redirect.php?url=https://auth.landgrey.me/jump.do?url=evil.com

    中间部分加入自己要跳转的url地址,后缀仍然使用白名单限制的域名地址;
    在这里插入图片描述




    漏洞测试:pikachu漏洞练习平台

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述

    url没有任何限制策略,直接跳转目标地址;
    在这里插入图片描述

    5. 漏洞发生:

    1. 用户登录、统一身份认证处,认证后
    2. 用户分享、收藏内容
    3. 跨站点认证、授权
    4. 站内点击其它网址链接

    防护方法:

    1. 代码固定跳转地址,不让用户控制变量
    2. 跳转目标地址采用白名单映射机制
      比如1代表auth.landgrey.me,2代表www.landgrey.me,其它不做任何动作
    3. 合理充分的校验校验跳转的目标地址,非己方地址时告知用户跳转风险之所以会出现跳转 URL 漏洞,就是因为服务端没有对客户端传递的跳转地址进行合法性校验;

    所以,预防这种攻击的方式,就是对客户端传递过来的跳转 URL 进行校验。

    常用的方式:(配置白名单)

    服务端配置跳转白名单或域名白名单,只对合法的 URL 做跳转,所有跳转的URL都要加上一次验证参数,保证不会跳转到未授权的URL即可。


    6. 漏洞总结:

    理论上讲,url跳转属于CSRF的一种,我们需要对传入的URL做有效性的认证,保证该URL来自于正确的地方,限制的方式同防止csrf一样可以包括:

    <1>referer的限制如果确定传递URL参数进入的来源,我们可以通过该方式实现安全限制,保证该URL的有效性,避免恶意用户自己生成跳转链接。

    <2> 加入有效性验证Token我们保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。

    展开全文
  • 微信生成授权URL

    千次阅读 2020-12-29 20:19:46
    第二步:通过code获取access_token(开发回调URL) 二 后端开发 service_ucenter微服务 1 添加配置 open: # 微信开放平台 appid appId: # 微信开放平台 appsecret appSecret: # 微信开放平台 重定向url(guli.shop...

    一 准备工作

    1 注册

    微信开放平台:https://open.weixin.qq.com

    2 邮箱激活

    3 完善开发者资料

    4 开发者资质认证

    准备营业执照,1-2个工作日审批、300元

    5 创建网站应用

    提交审核,7个工作日审批

    6 熟悉微信登录流程

    获取access_token时序图

    参考文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=e547653f995d8f402704d5cb2945177dc8aa4e7e&lang=zh_CN

    第一步:请求CODE(生成授权URL)

    第二步:通过code获取access_token(开发回调URL)

    二 后端开发

    service_ucenter微服务

    1 添加配置

    open:
      # 微信开放平台 appid
      appId: <你的微信开放平台appid>
      # 微信开放平台 appsecret
      appSecret: <你的微信开放平台 appsecret>
      # 微信开放平台 重定向url(guli.shop需要在微信开放平台配置)
      redirectUri: <你的微信开放平台 重定向url>

    2 创建常量类

    创建util包,创建UcenterProperties.java类

    package com.atguigu.guli.service.ucenter.util;
    @Data
    @Component
    // 注意prefix要写到最后一个 "." 符号之前
    @ConfigurationProperties(prefix="wx.open")
    public class UcenterProperties {
        private String appId;
        private String appSecret;
        private String redirectUri;
    }

    3 创建controller

    /**
    * @className: ApiWxController
    * @description: 微信API控制器
    * @date: 2020/12/29
    * @author: cakin
    */
    @CrossOrigin
    @Controller // 注意这里不能配置为 @RestController
    @RequestMapping("/api/ucenter/wx")
    @Slf4j
    public class ApiWxController {
    
    
        @Autowired
        private UcenterProperties ucenterProperties;
    
    
        @Autowired
        private MemberService memberService;
    
    
        @GetMapping("login")
        public String genQrConnect(HttpSession session) {
            // 组装微信url:https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=回调地址&response_type=code&scope=snsapi_login&state=随机数#wechat_redirect
            String baseUrl = "https://open.weixin.qq.com/connect/qrconnect" +
                    "?appid=%s" +
                    "&redirect_uri=%s" +
                    "&response_type=code" +
                    "&scope=snsapi_login" +
                    "&state=%s" +
                    "#wechat_redirect";
            // 将回调url进行转码
            String redirectUri = "";
            try {
                redirectUri = URLEncoder.encode(ucenterProperties.getRedirectUri(), "UTF-8");
            } catch (UnsupportedEncodingException e) {
                log.error(ExceptionUtils.getMessage(e));
                throw new GuliException(ResultCodeEnum.URL_ENCODE_ERROR);
            }
            // 生成随机state,防止csrf攻击
            String state = UUID.randomUUID().toString();
            // 将state存入session
            session.setAttribute("wx_open_state", state);
            // 格式化 回调url
            String qrcodeUrl = String.format(
                    baseUrl,
                    ucenterProperties.getAppId(),
                    redirectUri,
                    state);
            // 跳转到组装的url地址中去
            return "redirect:" + qrcodeUrl;
        }
    }

    授权url参数说明

    4 测试

    访问:访问以下授权url后会得到一个微信登录二维码

    http://localhost:8160/api/ucenter/wx/login

    5 前端整合登录超链接

    pages/login.vue和register.vue中替换微信登录的超链接

    三 集成Spring Session

    使用spring session实现分布式session共享,对原有代码无侵入,自动在redis中存储session信息

    1 service_ucenter中添加依赖

    <!--spring session:session同步 同步到redis中-->
    <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session-data-redis</artifactId>
    </dependency>

    2 service_ucenter中添加配置文件

    @Configuration
    @EnableRedisHttpSession
    public class HttpSessionConfig {
        // 可选配置
        @Bean
        public CookieSerializer cookieSerializer() {
            DefaultCookieSerializer serializer = new DefaultCookieSerializer();
            //我们可以将Spring Session默认的Cookie Key从SESSION替换为原生的JSESSIONID
            serializer.setCookieName("JSESSIONID");
            // CookiePath设置为根路径
            serializer.setCookiePath("/");
            // 配置了相关的正则表达式,可以达到同父域下的单点登录的效果
            serializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");
            return serializer;
        }
    }

     

    展开全文
  • let name = url.substring(url.lastIndexOf("/") + 1) let downLoad = async () => { let responsePromise = await fetch(url) let blob = await responsePromise.blob() let objectURL = window.URL....
    let url = 'http://127.0.0.1:8080/hhh.json'
    let name = url.substring(url.lastIndexOf("/") + 1)
    let downLoad = async () => {
      let responsePromise = await fetch(url)
      let blob = await responsePromise.blob()
      let objectURL = window.URL.createObjectURL(blob)
      let a = document.createElement('a')
      a.href = objectURL
      a.download = name
      a.click()
      a.remove()
    }
    downLoad()
    
    展开全文
  • java解决限制访问指定url

    千次阅读 2021-04-24 17:36:53
    关于这个问题,其实说起来,还是跟系统在一开始的规划设计阶段的安全考虑不够完备,比如你的后台项目是否需要必要的鉴权,是否集成了第三方安全框架等,如果在项目框架搭建之初,就能考虑到这些问题

    前言

    在web项目交付阶段,很多交付的小伙伴们会面临的一个问题就是安全漏洞扫描,关于安全漏洞问题,可以分为很多种,但从扫描者的角度,一旦他们认为你的后端服务接口暴露的太多,或过于明显,或没有前置的安全措施(通过登录的方式)就能拿到后台的数据,这样显然是不合理的,一旦扫出这样的接口,那么面临的一个问题就是,解决接口暴露的问题

    关于这个问题,其实说起来,还是跟系统在一开始的规划设计阶段的安全考虑不够完备,比如你的后台项目是否需要做必要的鉴权,是否集成了第三方安全框架等,如果在项目框架搭建之初,就能考虑到这些问题,相信在后续的交付阶段,就不必担心接口的安全漏洞问题

    但不管如何,一旦出现了,既然不能推倒重来,我们还必须要想办法快速补救,下面就本人在项目交付阶段的一点零碎的经验,针对这个问题,做一点技术实现方案的总结

    方案1:使用过滤器

    这种方式最简单,对大多数程序员来说,也最容易实现,只需要在一个自定义过滤器中,针对所有请求后端服务的url做拦截,对后端所有的URL进行分类,不同的url必须要经过什么样的校验才能通过,这种方式比较简单,就不再做代码层面的展示了

    方案2:使用拦截器

    先贴上代码

    package com.congge.interceptor;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class MyInterceptor implements HandlerInterceptor {
    
        public static Logger logger = LoggerFactory.getLogger(MyInterceptor.class);
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            logger.info("执行 preHandle:{}",request.getRequestURI());
            //TODO 这里可以是token,权限等前置业务的处理......
            response.getWriter().write("you have no access");
            return false;
        }
    
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
            logger.info("执行 preHandle");
        }
    
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
            logger.info("执行 afterCompletion");
        }
    
    }
    
    
    package com.congge.interceptor;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
    
    @Configuration
    public class MyWebmvcConfig extends WebMvcConfigurationSupport {
    
        @Override
        protected void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(new MyInterceptor())
                    .addPathPatterns("/user/**", "/admin/**", "/account/**")    //哪些路径要拦截
                    .excludePathPatterns("/open/api/**");                         //哪些逻辑不需要做拦截
        }
    
        /**
         * 静态资源的访问
         * @param registry
         */
        @Override
        protected void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/static/**")
                    .addResourceLocations("classpath:/static/");
            registry.addResourceHandler("/templates/**")
                    .addResourceLocations("classpath:/templates/");
            super.addResourceHandlers(registry);
        }
    
    }
    
    

    定义一个拦截器,实现HandlerInterceptor接口,在重新的方法中,编写自身校验权限,token等逻辑,如果返回false,请求直接结束,否则可以进入后续的接口资源访问,以文中的配置为例,我们分别访问一下2个接口

    在这里插入图片描述

    在这里插入图片描述
    上面这种方式的改造成本比较小,实现难度也很小,可以作为第一选择

    方案3:集成shiro

    相信很多小伙伴都用过shiro,shiro是一个小巧适用的安全框架,但实际上来说,在和后端项目进行集成时,很多前置的配置工作要做,而且和数据库的权限认证那一套的表结合的很紧密,如果不是在设计之初就集成的话,这个改造的难度和复杂度还是比较大的,慎用

    方案4:集成spring-security

    一听到spring-security,很多同学开始谈虎色变了,spring-security在后端的框架中算是比较复杂,也比较重型的框架了,学习成本是比较高的,但经过本人的研究发现,如果并不打算完全将spring-security的安全体系替换现有的代码逻辑时,可以借助其部分针对接口资源的权限控制功能,完全可以达到本篇问题的目的,下面通过2种方式来快速说明下

    导入security依赖

    		<dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
    

    方式1:直接引用上面的依赖之后,在配置文件中做简单的配置即可

    #手动设置登录用户名和密码
    spring.security.user.name=admin
    spring.security.user.password=admin
    

    引入依赖之后,项目启动之后,访问后端接口时,所有的请求都要经过spring-security的默认登录页面,因此上述配置文件中配置的用户名和密码即为登录的用户名和密码

    当我们再次访问上面的接口时,就会弹出下面的登录页面

    在这里插入图片描述

    输入:root/root,即可正常访问接口了
    在这里插入图片描述
    但这种方式的使用场景比较有限,使用的时候请慎重考虑

    方式2:使用spring-security的安全配置策略

    spring-security集成了很多功能,比如像权限,角色控制等,一般来说,任何系统的登录功能是必不可少的,因此可以借助系统现有的登录登录,再融入spring-security的登录认证即可满足

    实现起来,主要包括如下几点,

    1)自定义UserDetailsService,即实现UserDetailsService接口

    @Configuration("userDetailsService")
    public class MyUserDetailService implements UserDetailsService {
    
        @Autowired
        private UserMapper userMapper;
    
        @Override
        public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
            QueryWrapper<MyUser> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("username",username);
            MyUser myUser = userMapper.selectOne(queryWrapper);
            if(myUser==null){
                throw new RuntimeException("该用户不存在");
            }
            List<GrantedAuthority> roles = AuthorityUtils.commaSeparatedStringToAuthorityList("role");
            return new User(username,new BCryptPasswordEncoder().encode(myUser.getPassword()),roles);
        }
    }
    

    2)自定义配置类,继承WebSecurityConfigurerAdapter,根据需要重写里面的相关方法即可

    @Configuration
    public class MySecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private MyUserDetailService userDetailService;
    
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailService).passwordEncoder(password());
    }
    
    @Bean
    public PasswordEncoder password() {
        return new BCryptPasswordEncoder();
    }
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.formLogin()
                    .loginPage("/login.html")                       //自定义的登录界面
                    .loginProcessingUrl("/user/login")              //登录提交的接口
                    .defaultSuccessUrl("/zcy/index").permitAll()    //登录成功之后默认的跳转路径
                .and().authorizeRequests()                           //自定义受保护的URL资源
                    .antMatchers("/","/user/login","/open/api/**")
                    .permitAll()                                    //设置那些URL路径可以直接访问,不需要认证
                    .anyRequest().authenticated()                   //除了上面其他的URL资源都受保护
                .and()
                    .csrf().disable();                              //关闭CSRF防护
    }
    

    }

    关于上面的这段配置,相信的使用说明,有兴趣的同学可以参考我的专栏文章:spring-security

    总体的逻辑就是,在自定义的MyUserDetailService 中,完成登录的业务,只有查到访问资源的请求用户存在才会进入到下一步,当然在这个类中,可以结合现有系统的角色,权限体系做进一步的整合,而MySecurityConfig这个类,控制对访问的URL做保护,规定了哪些URL需要走登录认证,哪些可以不用认证等配置信息

    启动项目之后,让我们来做一下测试吧,分别访问一下下面的接口

    http://localhost:8081/open/api/user-info
    http://localhost:8081/account/get/list

    接口1可以直接访问,因为在配置类中对接口直接放行了
    在这里插入图片描述

    访问接口2的时候,弹出了如下的自定义登录页面
    在这里插入图片描述
    在这里插入图片描述
    在数据库中有这样一个用户,我们输入用户名和密码,就可以访问到该接口了
    在这里插入图片描述

    本篇总结了几种常用的限制访问后端URL的方式,希望对看到的小伙伴们有用,本篇到此结束,最后感谢观看!

    展开全文
  • js通过url地址访问文件下载

    千次阅读 2021-05-11 16:11:49
    let name = url.substring(url.lastIndexOf("/") + 1); let objectURL = window.URL.createObjectURL(new Blob([url])); let a = document.createElement('a') a.href = objectURL a.download = name a
  • 如何制作URL文件_艾孜尔江撰

    万次阅读 2021-03-09 09:30:35
    将下面结构写入文件,其中,URL后面的值可以自行选择进行更换; 保存并推出; 更改文件后缀名为*.url,点击确认,即可制作完成。 [InternetShortcut] URL=https://ezhar.blog.csdn.net/ ...
  • URL跳转漏洞

    2021-09-18 17:59:43
    URL跳转漏洞 URL跳转原理: 由于越来越多的需要和其他第三方应用交互,以及在自身应用内部根据不同的逻辑将用户引向到不同的页面,譬如一个典型的登录接口就经常需要在认证成功之后将用户引导到登录之前的页面,整个...
  • URL编码

    2020-12-31 10:55:55
    最近题经常碰到二次编码绕过,于是打算系统总结一下关于URL编码 相关内容 为什么URL要编码 URL之所以要编码是因为URL中有些字符会引起歧义 情况一url参数字符串使用key=value键值来传参,键值之间用&分隔,如...
  • URL的编码和解码

    千次阅读 2021-03-05 15:49:30
    1 为什么要URL编码在因特网上传送URL,只能采用ASCII字符集也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,即只有字母和数字[0-9a-zA-Z]、一些特殊符号$-_.+!*'()[不包括双引号]...
  • 今天小编与大家个简单介绍,大家了解下即可,URL没有什么特别的功能,只是一般的链接指向代码。url是什么意思?专业的说,URL是英语Uniform / Universal Resource Locator全称的缩写,中文含义是网页地址,是...
  • 网站url后带spm参数的作用

    千次阅读 2021-01-13 18:42:43
    SPM(super position model 超级位置模型) 跟Google Analytics在URL里面拼上utm_source, utm_medium等参数大同小异。 思路和原理 先来看几个问题 1.如何统计某个页面的pv呢? 一种思路是直接统计服务端nginx请求...
  • 机器学习实现恶意URL检测实战一

    千次阅读 2021-12-09 08:42:14
    训练的数据集为开源数据集,通过机器学习训练检测模型,然后了部分工程化的应用,将模型持久化,在应用的时候加载进来直接应用,不用重新进行训练。通过接口调用实现恶意URL检测预测判断。 恶意URL检测,对应与...
  • 我要的一个产品需求是将一个主URL和当前URL内的url进行合并,自动获取下一次点击应该跳转的地方,下面我来把实例代码放出来。比如一个网页叫http://xx.com/a2/解析这个网页的内容,里面有许多b22.html3.html如果...
  • 什么是url重定向

    千次阅读 2021-01-04 20:15:25
    URL重定向(URL redirection,或称网址重定向或网域名称转址),是指当使用者浏览某个网址时,将他导向到另一个网址的技术 url转发和重定向区别 第一种是request.getRequestDispatcher().forward(request,...
  • 修改url中参数的值

    千次阅读 2021-02-13 02:20:20
    之前都是先取 window.location.href的值 然后取匹配关键字近日在mdn上面发现了一个简便方法获取url中参数的值. 请点击这个链接找到例子6或者直接看这段代码(摘自MDN):function loadPageVar (sVar) {return ...
  • 成功登录后,我重定向如下:this.$router.push({ name: 'main' })这工作,但如果我刷新页面或尝试从URL访问它,例如http://testapp.test/main我得到错误:页面不存在404.目前我没有任何保护,以防止访问仅适用于...
  • url特殊字符转义及解决方法

    千次阅读 2021-03-05 16:06:23
    URL特殊字符需转义1、空格换成加号(+)2、正斜杠(/)分隔目录和子目录3、问号(?...”等特殊符的话,如果不处理,在service端就会将&后面的作为另外一个参数来看待。例如表单的action为list.jsf?act=go&...
  • current_url = url_queue.get() #拿出队例中第一个的url store(current_url) #把这个url代表的网页存储好 for next_url in extract_urls(current_url): #提取把这个url里链向的url if next_url not in seen: seen....
  • 在http请求后端时,token是一种非常常见的使用方式,但是如果url请求参数不带token,或者请求头部不带token这样的请求应当直接返回401,而不要代理给后端服务器处理了。可以有效降低后台服务器的负载。location /...
  • url格式组成部分详解

    2021-05-18 00:01:34
    URL格式 在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志,就是指网络地址。 URL由三部分组成:资源类型、存放资源的...
  • 在处理微信图文消息的链接时常常有很多参数的链接,会写的很长,不易阅读且容易出错,而且有些参数忘记 Url还会导致页面不显示,因此写了此函数直接上函数/*** 拼接http 请求串** @tutorial 模仿 php 的http_build_query...
  • URL请求过程

    千次阅读 2021-11-11 21:44:47
    4、发送完响应包,可能在服务器上需要一些其他的处理,比如日志记录。 浏览器渲染数据 当浏览器接受到数据包时,如何从这里面拿到需要的数据; 1、对于不同的浏览器,首先确定他们不同的渲染引擎,负责对网页语法...
  • flask框架url与重定向操作实例详解

    千次阅读 2020-12-29 08:26:52
    本文实例讲述了flask框架url与重定向操作。分享给大家供大家参考,具体如下:1. url与函数的映射当我们新建一个flask项目的时候,默认就会有一个hello_world函数,如下面这样@app.route('/')def hello_world():...
  • python实现中文转换url编码的方法

    千次阅读 2021-01-13 22:42:30
    本文实例讲述了python实现中文转换url编码的...但是添加到list里面是中文的情况(比如‘丽江'),url的地址编码却是'%E4%B8%BD%E6%B1%9F',因此需 要一个转换。这里我们就用到了模块urllib。>>> import u...
  • 过滤器六:url-pattern设置过滤范围

    千次阅读 2021-03-01 22:36:53
    复合url-pattern:同时过滤多种url 对于过滤器来说,既想对默认根路径进行过滤,又想对所有jsp进行过滤,还想对所有Servlet前缀的url进行过滤,这种复合的应该怎么? 结果:发现,此时访问默认首页index.jsp也被...
  • url跳转漏洞原理及绕过方式

    千次阅读 2020-12-22 05:28:57
    注:本文仅供学习参考0x01 url跳转原理及利用0x02 url跳转bypass0x03 url跳转修复0x01 url跳转原理及利用先走个流程说些废话,url重定向漏洞也称url任意跳转漏洞,网站信任了用户的输入导致恶意攻击,url重定向主要...
  • 匹配URL的正则表达式(推荐)

    千次阅读 2021-03-06 03:11:41
    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。则表达式:var match = /^((ht|f)tps?):\/\/[\w\-]+...
  • 今天我们主要介绍一款新的软件:疯狂URL,通过我个人测试发现,它可以很方便的捕获我们的软件视频地址,直播地址,以及web视频地址及直播地址等,包括手机端均可以。其主要原理与wireshark一样,但是这个内置了过滤...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,365,986
精华内容 546,394
关键字:

url怎么做