郑州信息科技中专职业学院中专部

不仅仅统招学历哟

  • 热门专业!
  • 大学校园!
  • 就业保障!
  • 拿学历又能高薪就业,谁能不爱!
了解详情>
郑州北大青鸟翔天信鸽参加“安心学习·放心就业”公约签约仪式

让每一个家庭“安心”、“放心”

  • 教学为本
  • 师爱为魂
  • 安心学习
  • 放心就业
了解详情>
北大青鸟20周年庆典与总部年会郑州翔天信鸽荣获7项荣誉

深耕细作IT职业教育15载

  • 青鸟之星教学质量大奖
  • 卓越风云人物
  • 北大青鸟中心理事会成员
  • 七项荣耀载誉而行!
了解详情>
郑州北大青鸟学员喜获全国IT精英挑战赛冠军

我们教学怎么样

  • 实力见证
  • 网络组一等奖
  • 网络组二等奖
  • 软件组四等奖
  • 200家校区脱颖而出!
了解更多>
北大青鸟荣获315重承诺守信用放心品牌

北大青鸟职业IT20周年

  • 重承诺
  • 守信用
  • 放心品牌
  • 放心学习
  • 靠靠谱谱好就业!
了解更多>
学IT好工作高薪就业

我命由我不由天

  • 学个性的技术
  • 做爱做的事
  • 挣满意的钱
  • 衣食无忧
  • 选择宽且高大尚!
了解更多>
郑州北大青鸟IT培训办学14年

我们靠不靠谱

  • 14年办学
  • 14年磨练
  • 14年成长
  • 14年探索
  • 只为让每个学员成材!
了解更多>
郑州北大青鸟IT培训

不打工也牛掰

  • 好工作
  • 好环境
  • 高薪资
  • 好课程
  • 支持你成为有“钱”人!
了解更多>

学IT就读北大青鸟

  • 好工作
  • 好未来
  • 好老师
  • 好课程
  • 支持你成为受人尊敬的人!
了解更多>
北大青鸟电脑培训:解决图片被盗链接的问题?
作者: 添加时间:10-13 浏览次数:0

     现在网络上经常会有图片被盗的情况,之前常见的艳照门等都是大家非常熟知了的,所了网络信息安全非常的重要,为了确保个人隐私不被盗走,就要加紧掌握网络安全知识了,今天我们郑州北大青鸟校区给大家分享下解决图片被盗链接问题。一、所有的image url都跟上密文,比如你在绑定页面image url时可以这么做,以下是MVC示例。
  ImageController
  string path="/Content/";
  string imgName = "girl.jpg";
  long ticks=DateTime.Now.Ticks;
  //使用当前时间刻度作为待加密对象
  string encryptKey = ticks.ToString();
  //使用自定义对称算法加密
  byte[] data = SymmetricEncryptionUtility
  .EncryptData
  (
  encryptKey,
  ShareData.SymmetricKeyFile
  );
  //使加密后的数据转换成base64码
  string encryptedImgName = Convert.ToBase64String(data);
  string encryptedEncoding = HttpUtility.UrlEncode
  (
  encryptedImgName
  );
  //将加密后的密文存放在共享数据中
  ShareData.KeyCollections.Add(encryptedImgName);
  ViewData["imgUrl"] = string.Format
  ("{0}{1}?key={2}", path, imgName, encryptedEncoding);
二、自定义Handler.专用于处理图片请求.此handler做这么几件事,
1、获得图片请求的key,即上段代码中的encryptedEncoding.没有图片key,那就哪里来送回哪里去.(友好点.给个性感图片送过去..)
2、应该所有key都经过对称算法加密,so..解密先..
3、判断请求是否来自本站.是本站流程进4. 否则进5
4、本站请求再做进一步筛选.查看ShareData中是否有包含此key.(ShareData是自定义的.),存在图片的key那么清除ShareData中此key然后正确返回请求图片.不存在那么同步骤1一样送回去..(做ShareData判断是防止javascript 篡改request head信息)
5、不是来自本站的请求.可以提供自己的策略..我这里做的是30天链接过期.(因为第一段代码中用时间刻度做加密..所以这里解密了很好判断)
  ImageHandler
  public void ProcessRequest(HttpContext context)
  {
  HttpResponse response = context.Response;
  HttpRequest request = context.Request;
  string imgKey = request.QueryString["key"];
  byte[] data = Convert.FromBase64String(imgKey);
  string decryptedKey = SymmetricEncryptionUtility
  .DecryptData
  (
  data,
  ShareData.SymmetricKeyFile
  );
//如果没有图片密钥就返回
  if (imgKey == null) return;
  string imagePath = null;
  //检查请求是否来自外站
  if (request.UrlReferrer != null)
  {
  if (String.Compare(
  request.Url.Host,
  request.UrlReferrer.Host,
  true,
  CultureInfo.InvariantCulture) == 0)
  {
  if (!ShareData.KeyCollections.Contains(imgKey))
  return;
  imagePath = request.PhysicalPath;
  if (!File.Exists(imagePath))
  {
  response.StatusCode = 404;
  return;
  }
  }
  }
  else//不是本站.检查明文时间轴
  {
  long ticks;
  if (long.TryParse(decryptedKey, out ticks))
  {
  TimeSpan ts = new TimeSpan
  (
  DateTime.Now.Ticks - ticks
  );
  //如果大于一个月
  if (ts.TotalDays > 30)
  {
  //输出链接过期
  return;
  }
  }
  }
  //移除共享数据中key
  ShareData.KeyCollections.Remove(decryptedKey);
  response.ContentType = "image/"
  + Path.GetExtension(imagePath).ToLower();
  response.WriteFile(imagePath);
  }
  因为是自定义Handler注意在config中注册handler节点..至于配置节不知道什么意思..自己查查.
  web.config
  <httpHandlers> <add verb="*" path="*.gif" type=
  "MvcApp.Handler.ImageHandler"/>
  <add verb="GET" path="*.jpg" type="MvcApp.Handler.ImageHandler"/>
  </httpHandlers>
  以上就是图片被盗链接的解决问题,掌握了这些知识就可以轻松确保自己个人信息的安全了,想要了解更多的网络安全知识请链接:http://www.hnbenet.com/wlaq/  本文源自:http://www.hnbenet.com/jsjl/ 转载请注明出处!    
 


本文由站河南北大青鸟校区整编而成,如需了解更多IT资讯类的文章、新闻、课程和学习技巧、就业案例、招生详情等问题,可以对在线咨询老师进行一对一问答!


分享到: