笑看尘世|网络安全逐渐成为程序员的必备技能( 二 )


如何防范呢?作为网站的开发者 , 最简单的方式就是对referer做判断 , 看发起该请求的来源是否可信 。 当然更好的方式是给每一个正常登陆的用户分配一个token , 用户发起的每次请求都对这个token做一下有效性验证 。
/04 越权漏洞/「越权」顾名思义 , 就是超越应有的权限 。 比如 , 某个电商网站查看订单信息的url是 。 这样的格式 , 如果我手动把url最后的数字修改成10002发起请求 , 如果服务端没有校验当前登陆人的信息 , 那么这个10002的订单信息就被越权获取了 。
如何防范呢?主要有两点 。

  1. 做好权限校验 , 不要偷懒 。
  2. 编号或者id类的数据 , 避免顺序增加 。 还有一个额外的好处是 , 避免竞争对手猜到你们的真实订单数 。
其实还有很多安全问题 , 比如支付漏洞(支付金额未校验)、上传攻击等等 。 但是处理起来的大体思路上和上面提到的这4个是类似的 。
为了便于大家理解以及在编码时更具安全意识 , 我给大家提炼了一些思路 。
  1. 只要是外部输入的数据 , 一定要做好全面的校验 , 确保处理并返回的数据是符合预期的 。
  2. 代码的实现尽量减少多余的外部交互 。
  3. 错误处理的时候 , 一定不要将技术层面的异常信息抛出到用户端 , 特别是堆栈信息 。
如果这些还嫌多 , 记不住 。 那么脑子里记住一个词——「严进严出」 。
好了 , 总结一下 。
这篇呢 , Z哥提醒广大程序员一定要在写代码的时候有安全意识 。 因为网络安全的重要性会随着互联网的进一步深入到我们的生活变得更加重要 。
最常见的4种安全问题 , 你一定得知道如何应对 。
  1. SQL注入
  2. 跨站脚本攻击(XSS)
  3. 跨站请求伪造(CSRF)
  4. 越权漏洞
对于其他的安全问题 , 只要时刻带着「严进严出」的思想去coding , 相信也能杜绝掉大部分的隐患 。
不知道你有经历过什么惊心动魄的网络安全事件吗?欢迎在评论区分享你的经验给大家哦 。
推荐阅读:
  • 如何做一个懂产品的程序员?
  • 架构思维其实就那么回事
也可以「关注」我 , 带你以技术思维看世界~想更进一步和我一起玩耍 , 欢迎「搜索微信公号:跨界架构师」 。内容包括:架构设计丨分布式系统丨产品丨运营丨个人深度思考 。
更多原创精品 , 欢迎加入小圈子 , 请戳【了解更多】