采用URL访问资源,隐藏真实地址

  public void test() throws IOException{

	  	 DataInputStream in=null;
	  	 DataOutputStream temps=null;
	  	 HttpServletResponse response = ServletActionContext.getResponse();
	  	 try{
			 //  out.clear();
			 //  out = pageContext.pushBody();
	        
	       
	  	    // 读到流中
			//String strPdfPath = new String("/test/auto_pdf/files/"+gid+"/"+file_name);
	 		
	 		String downFileUrl="http://203.86.108.1/summary_traffic_report_web_test/summary_monthly_traffic_report_images_and_html_test/20499/all_sites_traffic_summary_201502.html";
	  	 	
	  	    URL downUrl = new URL(downFileUrl);     
			 
			URLConnection conn = downUrl.openConnection(); 
			 
			 System.out.println(conn.getContent());
			 int dataSize = conn.getContentLength(); //取得要下载的数据的长度 
			 System.out.print("dataSize = " + dataSize);
	  	    // 设置输出的格式
	  	    response.reset();
	  	    response.setContentType("text/html");  // 如果是图片 则写成 response.setContentType("image/jpeg")

	 
	  		temps = new DataOutputStream(response.getOutputStream());
			in = new DataInputStream(conn.getInputStream());

				 byte[] b = new byte[2048];
				 int i = 0;  
				 while ((i = in.read(b)) > 0) {
				 temps.write(b,0,i);
				 temps.flush();
			 }

			}catch(Exception e){
	  		 	e.printStackTrace();
	  	 }finally{
	  		if(in!=null)in.close();
	  	 	if(temps!=null)temps.close();
		}
	   
  }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 前端无法直接隐藏后端的接口,但是可以通过在前端代码中不直接使用后端接口的 URL 来间接地隐藏后端接口。 有几种方法可以做到这一点: 1. 使用代理服务器:前端代码中使用代理服务器的 URL,而不是后端接口的 URL。例如,前端代码中可以使用 `http://proxy.example.com/api` 来访问后端接口,而不是直接使用 `http://api.example.com`。这样就可以隐藏后端接口的真实地址。 2. 封装后端接口:在前端代码中创建一个封装了后端接口调用的函数,例如 `getData()`,然后在函数内部使用后端接口的 URL。这样,前端代码中就无需使用后端接口的 URL,也就隐藏了后端接口的真实地址。 3. 使用 CORS:使用跨域资源共享 (CORS) 机制可以让前端代码从跨域的后端接口中获取数据。这样,前端代码中就不需要使用后端接口的 URL,也就隐藏了后端接口的真实地址。 以上三种方法都可以在一定程度上帮助你隐藏后端接口的真实地址。但是,无论使用哪种方法,都不能完全隐藏后端接口,因为后端接口的真 ### 回答2: 前端可以采取以下几种方法来隐藏后端的接口: 1. 接口权限控制:在后端服务器上设置接口的权限控制规则,只允许特定的用户或角色访问特定的接口。前端在发起接口请求时,需要提供有效的身份验证信息或访问令牌,后端根据验证信息判断是否有权限访问接口。 2. 接口加密:将后端接口的请求参数进行加密操作,使得外部无法直接解析参数内容,需要在前端对参数进行解密后才能进行正确的接口请求。可以使用对称加密算法或非对称加密算法进行参数加密,并在后端进行解密处理。 3. 接口混淆:将后端接口的名称、路径或参数进行混淆处理,使得外部难以直接猜测到接口的真实含义。可以采用重命名、路径映射等方式将接口进行混淆,增加黑客获取接口信息的难度。 4. IP白名单:在后端服务器上设置IP白名单,只允许特定的IP地址或IP地址范围进行接口请求。前端在发起接口请求时,需要在网络环境中处于允许访问的IP地址范围内,否则无法正常访问后端接口。 5. 接口地址校验:在前端代码中通过一定的算法或校验规则对后端接口地址进行校验,如果不符合预期的规则,则拒绝发起该接口请求。这种方法可以有效防止非法篡改或恶意构造接口地址进行非法访问。 综上所述,在前端隐藏后端的接口需要结合多种手段,包括接口权限控制、接口加密、接口混淆、IP白名单和接口地址校验等方法,以增强后端接口的安全性和保护用户数据的机密性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值