我已经构建了一个电子邮件系统,当你在数据库中直立时,用户发送了一封电子邮件,但问题是图像不会显示,但必须指明它必须像爱情一样向前出现正如你在这里看到的那样:
http://billedeupload.dk/images/TaWuJ.png
我喜欢像facebook这样的所有其他网站,他们的徽标一直存在。我只是喜欢图像也一直显示而无需用户做任何事情。
我这样做了:
<div style="background:#666; color:#FFF; margin:0 auto; width: 960px;">
<img src="http://www.blabla.dk/indhold/img/banner-2.png">
答案 0 :(得分:2)
你写的代码是完全正确的。默认情况下,许多邮件客户端(如GMail,ThunderBird等)都不会显示图像。您需要单击Display Image链接。此过程无法自动完成。这是一种防止CSRF的安全措施。
以下是一些参考资料:
默认情况下,Gmail会尝试通过阻止电子邮件中的图片来保护您的电子邮件免受垃这很好,但是当你想看到你的联系人的图片时,这有点烦人。
Gmail now doesn't display images in my email. - Google Groups
默认情况下,如果更改为使用HTTPS,则您与Gmail的连接将通过HTTPS加密。但是,您可能收到的某些消息(例如广告和简报)可能包含不是通过HTTPS发送的图像,而是通过HTTP发送的。
像Internet Explorer这样的浏览器会通过弹出窗口向您发出警告,指示您在通过HTTPS连接到Gmail时可能正在尝试访问通过HTTP发送的内容。这就是为Internet Explorer启用混合内容显示的原因。但是,在启用HTTP内容显示时请务必小心,因为某些网站可能存在浏览器设置试图保护您的风险或恶意内容。
Why do emails not load images directly
Gmail,yahoo,hotmail等电子邮件提供商不会直接在电子邮件中加载图片。这些服务要求您允许图像被加密。他们为什么这样做呢?是为了防止XSS / CSRF吗?
两个原因 - 隐私和CSRF。
隐私强>
它允许发件人弄清楚我是否已打开电子邮件或 不,在我不知情的情况下。垃圾邮件发送者可以弄清楚他们是否会 “营销”广告系列是否有任何影响。
<强> CSRF 强>
要使CSRF工作,受害者必须单击链接或访问 攻击者页面。如果电子邮件客户端要自动显示图像, 只需打开一封电子邮件即可启动CSRF攻击。
例如,假设paypal有一个csrf漏洞。还假设 用户登录到paypal。现在,攻击者发送用户 一封包含
<img src="http://paypal.com/transferfunds?fromAccount=victim&toAccount=attacker"/>
的电子邮件。 一旦用户打开电子邮件,资金就会被转移。