面试-说一下项目开发中你遇到的难点

744 阅读2分钟

项目难点

  1. 刚接手新项目的时候就收到了渗透测试人员那边给出的测试报告,显示《全局越权漏洞》的问题。因为是刚接手项目,加上之前并没有在实际的公司项目上进行过“鉴权认证”的开发工作,所以一开始就会觉得比较棘手。再仔细看查看研究了“渗透测试”报告后,我又了解到项目鉴权框架使用的shiro。于是我就着手在互联网上查找关于shiro的文档和学习资料,加上对项目原有代码的解读,大概只花了两天多的时间就把“渗透测试”中出现的《全局越权漏洞》的问题给解决了。当然最开始问题是搞定了,但对于“用户登录”、“权限认证”这些整体的理念和细节并不是完全的清晰的。后续我又花了大概一周的时间,结合网上的教程完成了自己的一个shiro登录授权的demo工程,并记录了详细的博客笔记。只有真正把代码写出来,真正的把功能给实现一遍,才能说是掌握了这个技术。
  2. 后面项目基本功能可用后,就申请了域名准备拿到外网使用。这个时候,又对项目进行了一个整体的扫描测试,这次发现项目存在Cors跨域请求问题和Xss跨站脚本攻击问题。跨域问题,原项目是有进行跨域相关的配置的,但是因为"Access-Control-Allow-Origin"(允许客户端的域)直接设置为了"*",然后“ACCESS_CONTROL_ALLOW_CREDENTIALS”(允许客户端携带凭证信息)设置为了"true"。这两个设置为不安全的cors配置,“不安全的CORS配置将导致资源被任意外域进行跨域访问”。最开始我还觉得是测试人员测试错了,明明我们的项目是支持跨域访问的,为什么说我们Cors跨域配置错误呢。后来找测试人员了解到,才知道是配置的太粗犷了,要进行修改,后面我又网上扒拉了好多文章教程,才找到原来是上面两个配置的问题。

跨域问题:就是浏览器不允许不同域名、ip、端口的两个请求互相访问,会被阻止,这个时候就需要我们在服务端进行配置,告诉浏览器哪些资源是可以进行跨域访问的。