在前台验证了XSS注入内容,就可靠了么?

Squall001 2018-03-03 10:40:02
我有个疑问,最近需要用到富文本编辑器,那么就在MVC后台控制器关闭了验证[ValidateInput(false)]

这样前台富文本的内容就可以正常提交上来了。

那么问题来了,这个关闭了过后,明显会不安全,而网上有很多方法,都是在前台提交的时候,过滤掉威胁代码,
例如http://jsxss.com/zh/index.html 这个里面介绍的就是,这个过滤的确很牛逼,但是它是前台的,它的使用方法就是引入JS,然后调用,我在想,攻击者在拿到前台代码后,很明显就知道我是提交到控制器哪个位置的,然后他伪造一个网页,去掉相关的验证部分函数,提交上来岂不是就行了?

如果再没有其他什么保护的情况下,单独这样前台伪造个页面提交,感觉就跟前台过滤没什么关系了啊。。。。是我想错了么?
...全文
551 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pigeon汪 2018-03-04
  • 打赏
  • 举报
回复
MVC控制器有很多特性,包括各种类型的验证。 针对不同的恶意攻击,可以调使用相应的验证特性。控制器验证是在服务器端,攻击者无法回避。
masanaka 2018-03-04
  • 打赏
  • 举报
回复
防XSS和前端input根本没关系,和前端output有关系。 用户就是要输入<script>alert()</script>这样的文本内容,怎么能用所谓的前端过滤来处理input呢? 关键的防范是在后端对输入内容的安全控制,如sql注入,还有前端内容再显示时候的控制,如脚本注入。
Go 旅城通票 2018-03-04
  • 打赏
  • 举报
回复
引用 6 楼 Squall001 的回复:
[quote=引用 5 楼 sp1234 的回复:] 我们做技术架构设计时总会遇到必须做出这样的决策的时刻:你说得对,等我2个月后有时间的时候,一定要加上你说的这个特性。 有些问题明显地就得从现实开发进度出发的。比如我们经常强调应用程序设计一定要以前端需求为出发点,而不要把大量青春荒废在底层。这显然就是针对现实情况下出现的一些满脑子只有理论而行动力不强的坑爹(但是整天抠技术字眼儿的)开发人员而言的,并不是单纯在说就是非,而是从现实出发。心目中把“现实”看得很低而把理想看得很单纯的人,难以理解。
引用 3 楼 sp1234 的回复:
[quote=引用 楼主 Squall001 的回复:] 我有个疑问,最近需要用到富文本编辑器,那么就在MVC后台控制器关闭了验证[ValidateInput(false)] 这样前台富文本的内容就可以正常提交上来了。
任何“保护”都是前后端分离的。从靠谱保护上说,只需要后端保护即可,不关心前端有没有保护。但是从用户体验上来说,前端做出及时判断会更好。 这二者要做出协调,不是谁取代谁,而是你首先实现哪一个、等有闲功夫的时候再去实现另外一个问题。[/quote] 谢谢大哥回复。。。 首先,我现在这个项目所用到的富文本是开放给客户的管理员权限的,平时浏览网站的人员是没有机会接触到富文本输入框的。所以按道理来说,攻击者除非拿到管理员账号,不然不可能获取到这个富文本的页面的。 另外你说的前后端结合,我想了下没错,在前端就过滤掉,这个本就是个好事。容我再多一句嘴:能够输入这些东西的都是攻击者,正常用户不会提交这些东西的,那么按照攻击者来看,他首先就会在浏览器上停掉JS吧,那么前端认证就失效了。。。 [/quote] 停js这么low的。。。,楼主知道浏览器开发工具干嘛用的吗。不要相信任何前台提交的数据,除非你系统安全性要求不高。。
Squall001 2018-03-04
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
我们做技术架构设计时总会遇到必须做出这样的决策的时刻:你说得对,等我2个月后有时间的时候,一定要加上你说的这个特性。 有些问题明显地就得从现实开发进度出发的。比如我们经常强调应用程序设计一定要以前端需求为出发点,而不要把大量青春荒废在底层。这显然就是针对现实情况下出现的一些满脑子只有理论而行动力不强的坑爹(但是整天抠技术字眼儿的)开发人员而言的,并不是单纯在说就是非,而是从现实出发。心目中把“现实”看得很低而把理想看得很单纯的人,难以理解。
引用 3 楼 sp1234 的回复:
[quote=引用 楼主 Squall001 的回复:] 我有个疑问,最近需要用到富文本编辑器,那么就在MVC后台控制器关闭了验证[ValidateInput(false)] 这样前台富文本的内容就可以正常提交上来了。
任何“保护”都是前后端分离的。从靠谱保护上说,只需要后端保护即可,不关心前端有没有保护。但是从用户体验上来说,前端做出及时判断会更好。 这二者要做出协调,不是谁取代谁,而是你首先实现哪一个、等有闲功夫的时候再去实现另外一个问题。[/quote] 谢谢大哥回复。。。 首先,我现在这个项目所用到的富文本是开放给客户的管理员权限的,平时浏览网站的人员是没有机会接触到富文本输入框的。所以按道理来说,攻击者除非拿到管理员账号,不然不可能获取到这个富文本的页面的。 另外你说的前后端结合,我想了下没错,在前端就过滤掉,这个本就是个好事。容我再多一句嘴:能够输入这些东西的都是攻击者,正常用户不会提交这些东西的,那么按照攻击者来看,他首先就会在浏览器上停掉JS吧,那么前端认证就失效了。。。
  • 打赏
  • 举报
回复
我们做技术架构设计时总会遇到必须做出这样的决策的时刻:你说得对,等我2个月后有时间的时候,一定要加上你说的这个特性。 有些问题明显地就得从现实开发进度出发的。比如我们经常强调应用程序设计一定要以前端需求为出发点,而不要把大量青春荒废在底层。这显然就是针对现实情况下出现的一些满脑子只有理论而行动力不强的坑爹(但是整天抠技术字眼儿的)开发人员而言的,并不是单纯在说就是非,而是从现实出发。心目中把“现实”看得很低而把理想看得很单纯的人,难以理解。
  • 打赏
  • 举报
回复
引用 楼主 Squall001 的回复:
[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/9.gif][/img 如果再没有其他什么保护的情况下,单独这样前台伪造个页面提交,感觉就跟前台过滤没什么关系了啊。。。。是我想错了么?
不是你想错了,是你总是从“是非”出发,而别人从实用出发,所以你不能自己判断和兼收并蓄。
  • 打赏
  • 举报
回复
引用 楼主 Squall001 的回复:
我有个疑问,最近需要用到富文本编辑器,那么就在MVC后台控制器关闭了验证[ValidateInput(false)] 这样前台富文本的内容就可以正常提交上来了。
任何“保护”都是前后端分离的。从靠谱保护上说,只需要后端保护即可,不关心前端有没有保护。但是从用户体验上来说,前端做出及时判断会更好。 这二者要做出协调,不是谁取代谁,而是你首先实现哪一个、等有闲功夫的时候再去实现另外一个问题。
threenewbee 2018-03-03
  • 打赏
  • 举报
回复
前端不可靠,要后端

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧