设置图像的 src 属性时是否需要注意,其中 src 路径由用户指定?
我正在创建一个页面,其中用户将指定图像的 url。该 url 将存储在数据库中,然后将其检索回来以显示图像。到目前为止,如果用户不想恶作剧,那就太好了。
但现在通过 http://ha.ckers.org/xss.html ,用户可以还指定一个实际上是脚本的 url。
<IMG SRC=javascript:alert('XSS')>
我在一个页面中尝试过这个,但这没有造成任何损害。 [没有显示警报] 所以重点是,我真的需要关心用户指定的内容吗?如果是,那么我需要考虑哪些案例/场景,以及如何做到这一点?
I am creating a page wherein user will specify the url of an image. This url will be stored in DB, and then it will be retrieve back to display the image. So far it is good if the user is not trying to be mischievous.
But now going by http://ha.ckers.org/xss.html , a user can also specify a url which is actually a script.
<IMG SRC=javascript:alert('XSS')>
I tried this in a page but this didn' do any harm. [ no alert is shown ]
So the point is, do i really need to care what the user is specifying? If yes, then what are the cases/scenario which i need to consider, and how to do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
只要您从不受信任的来源获得任何东西,您就需要处理好它。在这种情况下,用户可以编写一些有害代码来破坏您的 html。
此外,当用户输入在不同的地方使用时,应该以不同的方式处理。例如Url编码、Html编码、Javascript编码。
总之,不要相信用户输入!
As long as you get anything from untrusted source, you need to take care of it. In this case, users can write some harmful code to break your html.
Also user input should be handled in different approaches when being used in different places. E.g. Url encode, Html encode, Javascript encode.
In summary, don't trust user input!
在存储到数据库之前,请确保它是:
如果您有 ASP.NET 步骤 #2 成为使用 WebResponse 流创建新位图并查看它是否成功以及位图是否有效很简单。
Before storing in database, make sure it is:
If you have ASP.NET step #2 become simple matter of creating new Bitmap using the WebResponse stream and see if it's successful and the Bitmap is valid.
他还可以提供像
myevilscript.php
这样的值,他可以在其中执行一些 php 操作。所以事实上你真的不应该这样做:)Also he could provide a value like
myevilscript.php
where he does some php-stuff. So in fact you really shouldn't do this :)