考虑:
Content-Disposition: form-data; name="__VIEWSTATE" /wEPDwUKMTQxNzIxMTc0MQ9kFgICAw8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YWRkflsROmXoLo8ar8ukWWYDh1Wr2BCwmhiAAqpX/xwqLq8= Content-Disposition: form-data; name="__EVENTVALIDATION" /wEWBgKJ1KD6AwKH3P+GBQLr/4HeAgKWoZqyCQLinqurDALt3oXMA0YLgb/Mt6KGihl+8ixYoY9A24wgHGGoPAINhuyP7nEl
我们制作一个用户可以上传照片的网站.后来我们决定用户也可以通过其他应用上传照片,我们喜欢有统一的界面.所以其他应用程序可以使用同一页面.
我们注意到,除非我们知道__EVENTVALIDATION和__VIEWSTATE的价值,否则我们无法上传照片.
当然,应用程序只能加载上传的图像,但这是一种麻烦.
无论如何还是那些?有没有办法上传图片到aspx上传网站没有指定的东西?
解决方法
HTTP是一种无状态协议,这意味着客户端和服务器没有内置的方式来将应用程序的状态从一个请求追溯到下一个请求.已经发明了各种技术来规避这种情况,例如饼干. ViewState和事件验证是
ASP.NET使用的两种技术,用于向网页提供状态充分的感觉.
ViewState中的数据是发送到客户端时的所有控件(输入字段,复选框等)的状态.当表单发回服务器时,ASP.NET可以判断用户是否已经更改了任何字段中的任何值,并可以引发反映这种情况的事件(CheckedChanged
on a checkbox for example).没有ViewState,服务器将无法判断是否有任何字段已更改.
事件验证确保客户端上引发的事件源自ASP.NET呈现的控件.
这是a paper on ViewState和another that covers event validation.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。