精华内容
下载资源
问答
  • 微信测试号实现个人第三方PC端网站二维码登录(代码实现篇)
    千次阅读
    2018-04-16 17:04:09

    我页面使用了生成二维码的js,是网上拿到的(太多转载,具体作者是啥不知道(#^.^#))

    点击打开生成二维码js链接  直接复制js就OK。

    好,正文来啦,我代码中是使用了springboot(SSM)+redis+shiro。。。

    页面代码:

     

    <!DOCTYPE html>
    <html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
    				xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
    <head>
        <meta charset="UTF-8"/>
        <title>微信登录二维码</title>
        <script src='/js/jquery-2.0.3.min.js'></script>
        <script src="/js/qrcode.js"></script>
        <script type="text/javascript">
        /*<![CDATA[*/
        
        function checkLogin(){
        	var i = 0;
        	var sessionId = $("#sessionId").val();
        	if(sessionId!=""){
        		$.ajax({
                    url: "/wechat/polling",
                    type: "POST",
                    data:{sessionId:sessionId},
                    success: function (data) {
                    	if(data.status=="200"){
                    		window.clearInterval(c);
                    		alert(data.message);
                    		location.href = "/";
                    	}else{
                    		i++;
                    		if(i>60){
                    			window.clearInterval(c);
                    			alert("二维码已失效!请刷新二维码。");
                    		}
                    	}
                    }
            	});
        	}
        }
        
        function wechatLogin(){
        	$.ajax({
                url: "/wechat/wxLoginPage",
                type: "POST",
                success: function (data) {
                	$("#sessionId").val(data.sessionId);
                	
                	var qrcode = new QRCode(document.getElementById("code"), {
                        width : 200,//设置宽高
                        height : 200
                    });
                    qrcode.makeCode(data.uri);
                    c = setInterval(checkLogin,5000);//轮询查询
                }
        	});
        }
        /*]]>*/
        </script>
    </head>
    <body>
    	<shiro:guest>
    		<input type="button" value="微信登录" onclick="wechatLogin()" />
    	</shiro:guest>
    	<shiro:user>
    		<shiro:principal property="username" />您已登录。
    	</shiro:user>
    	
    	<input type="hidden" id="sessionId"/>
    	<br/><br/><br/><br/>
    	<div id="code"></div> 
    </body>
    </html>


    后台controller(@RequestMapping("/wechat"))代码:

     

     

    //pc点击微信登录,生成登录二维码
        @RequestMapping(value = "/wxLoginPage",method = RequestMethod.POST)
        @ResponseBody
        public Map<String,String> wxLoginPage(HttpServletRequest request) throws Exception {
        	String sessionId = request.getSession().getId();
        	logger.info("sessionId:"+sessionId);
            String uri = weChatAuthService.getAuthorizationUrl("pc",sessionId);//设置redirect_uri和state=sessionId以及测试号信息,返回授权url
            logger.info(uri);
            Map<String,String> map = new HashMap<String,String>();
            map.put("sessionId", sessionId);
            map.put("uri", uri);//用来前端生成二维码
            return map;
        }
        
        //扫描二维码授权成功,取到code,回调方法
        @RequestMapping(value = "/pcAuth")
        @ResponseBody
        public String pcCallback(String code,String state,HttpServletRequest request,HttpServletResponse response) throws Exception {
            String result = weChatAuthService.getAccessToken(code);//根据code获取access_token和openId,不懂看微信文档
            JSONObject jsonObject = JSONObject.parseObject(result);
            
            //String refresh_token = jsonObject.getString("refresh_token");
            String access_token = jsonObject.getString("access_token");
            String openId = jsonObject.getString("openId");
            
            logger.info("------------授权成功----------------");
            JSONObject infoJson = weChatAuthService.getUserInfo(access_token,openId);//根据token和openId获取微信用户信息,不懂看我上一篇文章开始分享的链接
            if(infoJson!=null){
            	String nickname = infoJson.getString("nickName");
                logger.info("-----nickname-----"+nickname);
                logger.info("-----sessionId-----"+state);
                infoJson.put("openId", openId);
                redisTemplate.opsForValue().set(state, infoJson, 10*60, TimeUnit.SECONDS);
                return "登录成功!";
            }
    	    return "登录失败!";
        }
    //轮询查询key
        @RequestMapping(value="/polling",method=RequestMethod.POST)
        @ResponseBody
        public Map<String, Object> polling(String sessionId,HttpServletRequest request,HttpServletResponse response){
        	Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
        	
        	if(redisTemplate.hasKey(sessionId)){
        		JSONObject infoJson = (JSONObject)redisTemplate.opsForValue().get(sessionId);
        		redisTemplate.opsForValue().getOperations().delete(sessionId);
        		String openId = (String)infoJson.get("openId");
        		//根据openId判断我们网站是否存在该用户,数据库用户表会保存用户
                User user = userService.selectUserByWechat(openId);
                if (user == null) {
                	String nickname = (String)infoJson.get("nickName");
                	String sex = (String)infoJson.get("sex");
                	User newuser = new User();
                	newuser.setSex(sex);
                	newuser.setWechat(openId);
                	newuser.setNickname(nickname);
                	int i = userService.insertUser(newuser);//新增用户
                	if(i<1){
                		resultMap.put("status", 500);
            	        resultMap.put("message", "登录失败:");
            	        return resultMap;
                	}
                }
                //登录操作
        	    try {
        	    	UsernamePasswordToken token = new UsernamePasswordToken(openId, openId);//这里是用shiro登录,反正该openId已经微信扫码验证
        	        SecurityUtils.getSubject().login(token);
        	        resultMap.put("status", 200);
        	        resultMap.put("message", "登录成功");
        	        
        	        //更新用户最后登录时间
        	        Subject  currentUser = SecurityUtils.getSubject(); 
        			User luser = (User) currentUser.getPrincipal();
        	        User user1 = new User();
        	        user1.setId(luser.getId());
        	        user1.setLastLogDate(new Date());
        	        userService.updateUserByIdSelective(user1);//更新用户方法
        	        
        	        
        	    } catch (Exception e) {
        	        resultMap.put("message", "未知系统错误:" + e.getMessage());
        	    }
        	    return resultMap;
        	}else{//not has key
        		resultMap.put("status", 0);
        		return resultMap;
        	}
        }

    serviceImpl代码

    package com.kun.service.impl;
    
    import java.io.UnsupportedEncodingException;
    import java.net.URI;
    import java.net.URLEncoder;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.http.ResponseEntity;
    import org.springframework.stereotype.Service;
    import org.springframework.web.util.UriComponentsBuilder;
    
    import com.alibaba.fastjson.JSONObject;
    import com.kun.service.WeChatAuthService;
    
    @Service
    public class WeChatAuthServiceImpl extends DefaultAuthServiceImpl implements WeChatAuthService {
    
    	private final Logger logger = LoggerFactory.getLogger(this.getClass());
    
    	//请求此地址即跳转到二维码登录界面
        private static final String AUTHORIZATION_URL =
                "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s#wechat_redirect";
    
        // 获取用户 openid 和access——toke 的 URL
        private static final String ACCESSTOKE_OPENID_URL =
                "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code";
    
        private static final String REFRESH_TOKEN_URL =
                "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=%s&grant_type=refresh_token&refresh_token=%s";
    
        private static final String USER_INFO_URL =
                "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN";
    
        private static final String APP_ID="wx957421889a04804d";
        private static final String APP_SECRET="9155791266381e14c670ea7fa1abb90b";
        private static final String SCOPE = "snsapi_userinfo";//  snsapi_userinfo  snsapi_base
    
        private String pcCallbackUrl = "https://7dc6440a.ngrok.io//wechat/pcAuth"; //pc回调域名
        
        private String mobileCallbackUrl = "https://7dc6440a.ngrok.io//wechat/mobileAuth"; //mobile回调域名
    
        /**
         * 第一步,带着参数
         * appid:公众号的唯一标识
         * redirect_uri:授权后重定向的回调链接地址
         * response_type:返回类型,填写code
         * scope:应用授权作用域,snsapi_base / snsapi_userinfo
         * state:非必传,重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
         * wechat_redirect:无论直接打开还是做页面302重定向时候,必须带此参数
         * */
        @Override
        public String getAuthorizationUrl(String type,String state) throws UnsupportedEncodingException {
        	String callbackUrl = "";
        	Object urlState = "";
        	if("pc".equals(type)){//移动端 pc端回调方法不一样 
        		callbackUrl = URLEncoder.encode(pcCallbackUrl,"utf-8");
        		urlState = state;
        	}else if("mobile".equals(type)){
        		callbackUrl = URLEncoder.encode(mobileCallbackUrl,"utf-8");
        		urlState = System.currentTimeMillis();
        	}
            String url = String.format(AUTHORIZATION_URL,APP_ID,callbackUrl,SCOPE,urlState);
            return url;
        }
    
        /**
         * 第二步
         * 传appid  secret code grant_type=authorization_code
         * 获得 access_token openId等
         * */
        @Override
        public String getAccessToken(String code) {
            String url = String.format(ACCESSTOKE_OPENID_URL,APP_ID,APP_SECRET,code);
    
            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
            URI uri = builder.build().encode().toUri();
    
            String resp = getRestTemplate().getForObject(uri, String.class);
            logger.error("getAccessToken resp = "+resp);
            if(resp.contains("openid")){
                JSONObject jsonObject = JSONObject.parseObject(resp);
                String access_token = jsonObject.getString("access_token");
                String openId = jsonObject.getString("openid");;
    
                JSONObject res = new JSONObject();
                res.put("access_token",access_token);
                res.put("openId",openId);
                res.put("refresh_token",jsonObject.getString("refresh_token"));
    
                return res.toJSONString();
            }else{
                logger.error("获取用户信息错误,msg = "+resp);
            	return null;
            }
        }
    
        //微信接口中,token和openId是一起返回,故此方法不需实现
        @Override
        public String getOpenId(String accessToken) {
            return null;
        }
    
        @Override
        public JSONObject getUserInfo(String accessToken, String openId){
            String url = String.format(USER_INFO_URL, accessToken, openId);
            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
            URI uri = builder.build().encode().toUri();
    
            String resp = getRestTemplate().getForObject(uri, String.class);
            logger.error("getUserInfo resp = "+resp);
            if(resp.contains("errcode")){
            	logger.error("获取用户信息错误,msg = "+resp);
            	return null;
            }else{
                JSONObject data =JSONObject.parseObject(resp);
    
                JSONObject result = new JSONObject();
                result.put("id",data.getString("unionid"));
                result.put("sex",data.getString("sex"));
                result.put("nickName",data.getString("nickname"));
                result.put("avatar",data.getString("headimgurl"));
    
                return result;
            }
        }
    
        //微信的token只有2小时的有效期,过时需要重新获取,所以官方提供了
        //根据refresh_token 刷新获取token的方法,本项目仅仅是获取用户
        //信息,并将信息存入库,所以两个小时也已经足够了
        @Override
        public String refreshToken(String refresh_token) {
    
            String url = String.format(REFRESH_TOKEN_URL,APP_ID,refresh_token);
    
            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
            URI uri = builder.build().encode().toUri();
    
            ResponseEntity<JSONObject> resp = getRestTemplate().getForEntity(uri,JSONObject.class);
            JSONObject jsonObject = resp.getBody();
    
            String access_token = jsonObject.getString("access_token");
            return access_token;
        }
    }

    上面实现类继承的类DefaultAuthServiceImpl

    package com.kun.service.impl;
    
    import java.nio.charset.StandardCharsets;
    import java.util.LinkedList;
    import java.util.List;
    
    import javax.xml.transform.Source;
    
    import org.springframework.http.client.SimpleClientHttpRequestFactory;
    import org.springframework.http.converter.ByteArrayHttpMessageConverter;
    import org.springframework.http.converter.HttpMessageConverter;
    import org.springframework.http.converter.ResourceHttpMessageConverter;
    import org.springframework.http.converter.StringHttpMessageConverter;
    import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
    import org.springframework.http.converter.xml.SourceHttpMessageConverter;
    import org.springframework.web.client.RestTemplate;
    
    import com.kun.service.AuthService;
    
    public abstract class DefaultAuthServiceImpl implements AuthService{
        public static RestTemplate getRestTemplate() {// 手动添加
            SimpleClientHttpRequestFactory requestFactory=new SimpleClientHttpRequestFactory();
            requestFactory.setReadTimeout(120000);
            List<HttpMessageConverter<?>> messageConverters = new LinkedList<>();
            messageConverters.add(new ByteArrayHttpMessageConverter());
            messageConverters.add(new StringHttpMessageConverter(StandardCharsets.UTF_8));
            messageConverters.add(new ResourceHttpMessageConverter());
            messageConverters.add(new SourceHttpMessageConverter<Source>());
            messageConverters.add(new AllEncompassingFormHttpMessageConverter());
            messageConverters.add(new MappingJackson2HttpMessageConverter());
            RestTemplate restTemplate=new RestTemplate(messageConverters);
            restTemplate.setRequestFactory(requestFactory);
            return restTemplate;
        }
    }
    
    
    ------------------
    package com.kun.service;
    
    import java.io.UnsupportedEncodingException;
    
    import com.alibaba.fastjson.JSONObject;
    
    public interface AuthService {
        public abstract String getAccessToken(String code);
        public abstract String getOpenId(String accessToken);
        public abstract String refreshToken(String code);
        public abstract String getAuthorizationUrl(String type,String state) throws UnsupportedEncodingException;
        public abstract JSONObject getUserInfo(String accessToken,String openId);
    }

     

     

     

    上一篇文章《微信测试号实现个人第三方PC端网站二维码登录》

    到这里就可以实现微信二维码登录我们的个人网站啦~~~~~

     

     

     

     

     

    更多相关内容
  • 测试工程师学习网站汇总

    千次阅读 2022-03-26 20:37:37
    那么我把我觉得一些比较好网站,整理汇总推荐给你们 一、国内专注测试领域学习社区 这是一测试开发社区,里面有很多大佬分享的各种文章 https://testerhome.com/ 这也是一个大佬创办的,专注于测试开发技术 ...

    经常听身边小伙伴说,平时想提升学习,找不到比较好地方学习。那么我把我觉得一些比较好网站,整理汇总推荐给你们
    在这里插入图片描述

    一、国内专注测试领域学习社区

    • 这是一测试开发社区,里面有很多大佬分享的各种文章
      https://testerhome.com/
    • 这也是一个大佬创办的,专注于测试开发技术
      https://ceshiren.com/
    • 界面虽然丑了点,但真的不错
      https://www.testwo.com/

    二、技术社区

    这里说明下,虽然这些不是专注测试领域,但是对提升学习,都是很有很多帮助的

    • 开源中国 https://www.oschina.net/
    • 掘金 https://juejin.cn/
    • 博客园 https://www.cnblogs.com/
    • 思否 https://segmentfault.com/
    • 51CTO https://www.51cto.com/
    • 知乎 https://www.zhihu.com/
    • gitChat https://gitbook.cn/
    • 码云 https://gitee.com/
    • GitHub https://github.com/
    • 简书 https://www.jianshu.com/

    三、学习编程比较好网站

    • 菜鸟教程 https://www.runoob.com/
    • W3Chool https://www.w3cschool.cn/
    • cainiao https://www.cainiaojc.com/
    • Linux命令大全 https://www.linuxcool.com/

    四、比较好的个人博客

    • 前端大佬 https://347830076.github.io/myBlog/about.html
    • 计算机基础整理的特别好 https://www.xiaolincoding.com/
    • Java特别好 https://pdai.tech/

    后续会继续整理更新

    展开全文
  • 网站做渗透测试服务的步骤

    千次阅读 2022-04-06 14:09:27
    大家应该看过不少的web漏洞讲解的文章,什么sql注入,文件上传, csf, ssff等等,应该也看过不少的教你怎么渗透网站或视频或者是文档,有些可能还写了什么渗透测试步骤,告诉你第一步之后干什么,然后干什么最后干...

    大家应该看过不少的web漏洞讲解的文章,什么sql注入,文件上传, csf, ssff等等,应该也看过不少的教你怎么渗透网站或视频或者是文档,有些可能还写了什么渗透测试步骤,告诉你第一步之后干什么,然后干什么最后干什么,但就是不告诉你每一步用什么工具应该怎么用,怎么判断问题。看了这么多的教学视频和文档,有没有真正的实战过,现在给你一个网站的话,你能不能自己打造一两个这个漏洞,相信很多人都不太行,而且应该还有很多连漏洞的问题都没有搞清楚。

    我简单的跟大家分享一下我的网站找漏洞的过程,跟大家分享一下我的操作方法和思路,还有就是平常用的比较多的工具,给小白用户一个参考。好吧,我们废话少说,我们开始来看我是怎么对网站进行渗透的,为了给大家展示一下这个八步骤,我特意去搜了一下,然后把这个图给大家看一下。八个步骤大概是这么一个过程,明确目标,信息收集、漏洞探测、漏洞验证,然后是信息分析获取所需以及信息整理和形成报告,那目标很明显了,我们肯定要找一个这个明确的一个目标,比如说我们是对这个我们自己的评课网站,大家请注意,如果你个人去测试的时候,也千万不要拿我们网站站点来当做一个靶场来做,这是违法的,一定要获得正规授权才能渗透测试。

    而且我们评课站点的话,它是一个小站点可能也扛不住你的炮轰,这个搞那个搞很容易就可能崩溃了,如果说真的崩溃了,那么这个时候可能就要溯源了。如果真的是你干了这样的一个事情,到时候公安局找你那可能就比较麻烦了,这是一个犯法的一个事情,大家还是不要去做,大概知道一下就行了。然后还是拿这个靶场来给大家展示,因为靶场的话我们随便弄,也不用担心崩溃溯源的问题,套路大概是一样的,我主要是告诉大家我在渗透的过程当中,我所使用的一些工具以及我的思路和想法是怎么样的,对一些小白用户来说,可能有一点点帮助。

     

    我们拿随便搞一个站点好吧,我们弄一个OWSP的一个靶场,我们随便弄一个比如说DPW这个其实很多课程里面它都是使用这么一个站点来做,但是在真实的一个环境里面,你可能就是看到这个站点或者说看到一些某些站点的时候,不知道从什么地方下手,大概这么个意思,我们等下再说。先看一下我的这个大概一个方向是这样的,首先渗透一个目标网站,大概是分三个大的步骤。

     

    首先第一个是web层面的, 如果说web层面搞完以后,或者说在web层面搞不下去了以后,你再考虑中间件部分,然后是系统部分说白了拿一个站点给你,最重要的其实是看它的web层面有没有问题,然后才是看中间件的问题,最后是系统层面这么个意思。就说我现在拿了一个站点,你要先判断一下这个网站有没有问题,从这个什么十大漏洞里进行分析,你看我们这个什么SQL注入文件,上传文件包含命令执行,还有什么ssif以及什么XSS这种漏洞,这些都是属于web层面的,而你经常听到的什么叫阿帕奇的漏洞,还有NGINX的这个漏洞,iis的其他这种漏洞,这都是属于中间件的一个漏洞,千万不要搞错了。

    另外就是系统层面的,你看我们这个网站网页说肯定是要放到一个服务器上面,那么这个服务器它本身出现的一个系统层面的漏洞,是不是它可能放的,比如说我的这个网页服务器它是一个windows操作系统,那 windows操作系统它可能有这个 windows层面的一个漏洞,所以这个方向大家要进行分开,就是我在渗透的时候我肯定是先考虑这个东西就是分开,不要搞在一起了,我现在如果是要搞web层面的话,我就专门单独的去搞web层面的,并不是在说我搞一下,这个然后搞一下这个再搞一下,这个这个乱七八糟的你很难获得一些这个漏洞的。

    展开全文
  • 这里只提及微信二维码登录PC网站的实现方面,对于微信测试号如何申请,如何授权,本篇博客不去讲解。测试号申请:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login如何接收发送消息、生成菜单、授权...

    这里只提及微信二维码登录PC网站的实现方面,对于微信测试号如何申请,如何授权,本篇博客不去讲解。

    测试号申请:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    如何接收发送消息、生成菜单、授权等:https://blog.csdn.net/h295928126/article/details/53177001

    首先,经过摸索,明确的一点就是,测试号可以实现授权,这样移动端网站登录是比较简单实现的。直接让用户发送一条连接然后回调,根据code拿到access_token和openId,根据access_token和openId拿到用户信息,这样你的网站就可以为所欲为了。

    但是微信测试号却被限制了第三方PC端网站的二维码登录,测试号是没有权限获取微信生成的登录二维码的。发送一下这条链接:

                "https://open.weixin.qq.com/connect/qrconnect?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s#wechat_redirect";

    其中scope=snsapi_login,然后会报scope参数错误或没有scope权限。

    要想使用微信生成的登录二维码,必须要去微信开放平台  https://open.weixin.qq.com/cgi-bin/index?t=home/index&lang=zh_CN

    注册并通过开放平台开发者资质认证、创建网站应用、接入微信登录。。。当然,我都注册测试号了,我就没想过要花钱去认证。

    既然能给网站授权,就能自定义PC二维码登录。来,搞起来~

    琢磨了半天,搞出的‘简陋’设计图,真的很简陋。



    根据这个设计,可以实现自定二维码登录。下一篇我会把我的代码实现贴出来,能大概看懂草图的欢迎一同探讨。

    代码实现


    展开全文
  • Web渗透测试信息收集

    千次阅读 2022-01-05 10:14:53
    渗透需求分类 在实际的渗透测试项目中,甲方需求大概分为三种 第一种是:给定一个指定...测试的第一步就是先进行信息搜集—目标子域,收集尽量多的子域 第三种是:给定单位名称,其有关单位的互联网上的资产都可以..
  • 压力测试流程及测试步骤

    千次阅读 2021-02-25 19:14:17
    在压力测试期间是并发用户数主要是指同时执行一个或者一系列操作的用户,或者是同时执行脚本的用户,这个并发在设置不同场景的时候并发的情况是不一样的,在实际的测试中需要根据具体的需求进行设计。 最大并发用户...
  • 渗透测试信息收集的那些事

    千次阅读 2019-05-10 00:17:14
    渗透测试信息收集的那些事 转载自:TideSec(知名安全团队)--VllTomFord(大佬)------https://www.cnblogs.com/OpenCyberSec/p/10794124.html 信息收集概念、作用和分类 在一次护网行动中再次深刻意识到了...
  • 网站测试发布与推广

    千次阅读 2018-07-07 10:28:55
    因此,网站系统的测试工作十分重要。 测试的内容: 浏览器的兼容性测试。对不同浏览器的测试,就是在不同浏览器和不同的版本下,测试网页的运行和显示状况。在实际工作中,用户会使用不同的浏览器登录互联网,...
  • 测试技术网站分享

    千次阅读 2017-08-15 10:38:41
    http://bdonline.sqe.com/ 一个关于网站测试方面的网页,对这方面感兴趣的人可以参考 http://citeseer.nj.nec.com/ 一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料...
  • 中国十大软件测试网站

    万次阅读 多人点赞 2019-01-15 10:01:34
    No.1: 软件测试网 www.51testing.com  国内最大的综合性软件测试网,许多...比较综合的软件测试网,里面可以下载到常见的测试软件资源,也有些比较好的测试视频、测试沙龙信息。暂时排第2,51testing可能需要反...
  • 该项目介绍中是说这个项目是一个个人数据泄漏检测网站,适用于近期流传的 40GB+ 数据。
  • 给你一个电商网站,你如何测试

    千次阅读 多人点赞 2019-09-21 14:27:20
    如果给你一个电商网站,你该如何测试?以下是测试重点(文末有福利): 一、功能测试: 链接测试:链接是否正确跳转,是否存在空页面和无效页面及不正确的出错信息返回。 提交功能的测试; 多媒体元素是否...
  • 个人收集的一些网页上一键云DDOS攻击的网站、IP地址测试,服务器压力测试 标签: 原文地址:http://www.cnblogs.com/hanxianlong/p/4572653.html 转载于:https://www.cnblogs.com/bonelee/p/8671387.html
  • 如何测试网站的性能

    千次阅读 2017-11-12 11:30:06
    前言:真的是感谢广大的博友啊,让自己收获很多。所以自己也要努力多做贡献,今天在看别人博客的时候...在27项测试指标中,有21项接近满分,个人觉得还是挺不错了,在进行进一步优化以后,应该会取得更加好的成果。有了
  • 渗透测试信息收集篇

    千次阅读 2022-02-26 21:58:15
    在渗透测试或者挖src中,信息收集是最重要的,信息收集的越多,我们越能找到漏洞所在,所以在这里分享一下我总结的信息收集方法
  • iOS APP功能测试个人总结完整版)

    千次阅读 多人点赞 2019-04-27 22:28:09
    横屏/竖屏测试:游戏/图片/视频均有横竖屏自动切换,很多手机网站也做了横竖屏自适应,观察横屏或者竖屏页面的显示效果 图片、动画、边框、颜色、字体、背景、按钮等动画效果是否符合需求设计 图片或者动画的...
  • 测试中常见的一些信息泄露

    千次阅读 2020-02-10 18:23:08
    信息泄露一、.hg源码泄露二、.git源码泄露三、.DS_Store源码泄露四、网站备份压缩文件五、SVN文件泄露 一、.hg源码泄露 在使用hg init创建一个项目的时候一般会生成.hg,文件一般在根目录下输入.hg就可以发现. 检测...
  • 国内外的几十个测试学习网站

    千次阅读 2018-02-27 11:04:01
    http://bdonline.sqe.com/一个关于网站测试方面的网页,对这方面感兴趣的人可以参考http://citeseer.nj.nec.com/一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料参考网站...
  • 电商项目实战之web网站测试--业务

    千次阅读 多人点赞 2019-08-28 21:09:10
    web测试就是基于B/S框架的软件产品的测试,通俗点来说就是基于web网站测试。 路线图:前期准备--需求评审---设计评审---测试计划---功能测试---环境搭建---测试用例---测试架构---性能测试--安全测试---兼容性...
  • 个人信息被监控窃听风险 如: ARP攻击 SSL攻击 DNS安全 加密方式等 枚举实战应用案例 信息窃听获取 3、Wi-FI安全攻击和测试原理说明 3.1网络连接正常检查 3.2二次访问验证 3.3 ARP攻击(Address Resolution ...
  • 2021年软件测试面试题大全

    万次阅读 多人点赞 2020-11-30 15:16:59
    简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审...
  • 渗透测试第一步(信息收集)

    千次阅读 2020-04-04 20:33:30
    目录前言信息收集方式区别域名信息收集主域名信息子域名信息网络信息搜索旁站、c段信息收集绕过cdn获取真实ip网站架构分析服务器类型网站容器脚本类型数据库类型CMS类型WAF主机及端口扫描网站敏感目录和文件 ...
  • 教你快速搭建个人网站

    千次阅读 2022-04-21 15:13:57
    教你快速上手网站搭建,熟悉网站搭建的流程。
  • 个人觉得这个工具比任何自动化测试框架都好使,使用关键字和数据双驱动,不需要写一行代码,无需维护脚本,只需要维护用例数据。Web元素只需要在Chrome中复制xPath即可,定位非常高效。 工具安全无木马,目的只为...
  • 针对业务测试人员不仅仅要关注功能测试,业务安全测试也已经成为测试的一部分,特梳理如下业务安全测试指引,文中提到了一些常见案例,也欢迎大家留言说说你都遇到过哪些漏洞案例?也希望本文能够对你有...
  • Android APP功能测试个人总结完整版)

    万次阅读 多人点赞 2019-04-27 22:07:56
    Android APP功能测试包含APP的安装卸载测试,界面测试,业务功能测试,APP特性测试,交叉事件测试,兼容性测试,升级更新测试,消息通知测试,功能键测试,手势测试等 1-APP的安装和卸载 1.1安装 软件在不同操作...
  • 分享一份适合练手的软件测试实战项目

    万次阅读 多人点赞 2020-11-21 19:28:50
    最近,不少读者托我找一个能实际练手的测试项目。开始,我觉得这是很简单的一件事,但当我付诸行动时,却发现,要找到一个对新手友好的练手项目,着实困难。 我翻了不下一百个web网页,包括之前推荐练手的政府网站...
  • web页面测试方法与测试用例编写

    万次阅读 多人点赞 2020-06-12 17:18:51
    十六、链接测试 主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。 可以使用特定的工具如XENU来进行链接测试。 1、导航测试 导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间...
  • 网站如何记录访客的个人信息

    千次阅读 2015-11-07 20:32:32
    大多数网站都会带有留言或者评论功能,那么访客在留言或者评论时肯定要记录访客的个人信息!这样访客在下一次访问网站时不需要再次填写个人信息,直接评论就ok啦!那么怎么记录访客的个人信息呢? ...
  • 一般情况下,个人博客网站 想要做用户注册、登录, 就需要让用户填写用户名、密码等信息进行手动注册、登录,这非常不友好。如果想做成微信扫码登录,对不起~~, 微信扫码登录的接口只对企业开放。好吧, 现在就让我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 227,377
精华内容 90,950
关键字:

网站个人信息测试