猿问

是否可以将二进制图像数据放入html标记,然后在任何浏览器中照常显示图像?

这是一个重要的安全问题,我相信这应该是可能的。


一个简单的例子:


您运行社区门户。用户已注册并上传他们的图片。只要允许显示图片,您的应用程序就会给出安全规则。例如,用户必须在系统的两侧成为朋友,以便您可以查看其他人上传的图片。


问题来了:有人可能对您的服务器的映像目录进行爬网。但是您想保护用户免受此类攻击。


如果可以将图像的二进制数据直接放入HTML标记中,则可以将用户对图像目录的访问权限限制为该用户,并可以将Web应用程序的运行分组,并将图像数据直接传递给Apache用户和组。 HTML。


这样,唯一可能的弱点就是您的Web应用程序运行时所使用的用户密码。


已经有可能吗?


森栏
浏览 1316回答 3
3回答

慕妹3146593

还有其他(更好)的方法(如其他答案所述)来保护文件安全,但是可以的是,可以将图像嵌入html中。通过<img>以下方式使用标签:<img src="data:image/gif;base64,xxxxxxxxxxxxx...">其中xxxxx...部分是gif图像数据的base64编码。

芜湖不芜

如果我的图片目录需要安全性,则完全不会公开该目录。相反,我的img src属性将引用一个页面,该页面将一个用户ID和一个图像ID作为参数。该页面将验证该用户确实有权查看该图片。如果一切正常,请将二进制文件发回。否则不发送任何东西。例如:<img src="imgaccess.php?userid=1111&imgid=223423" />另外,我不会使用可猜测的ID。而是坚持使用base 64编码的guid之类的东西。
随时随地看视频慕课网APP
我要回答