我们在 IIS 上有一个 ASP.NET 网站。我们有一个Lead Forensics链接。在切换到在所有页面上都要求 SSL 之前,它一直工作正常。它类似于:
<script type="text/javascript" src="http://lead-123.com/js/8303.js"></script>
Run Code Online (Sandbox Code Playgroud)
然而,由于需要 SSL,跟踪似乎不再有效。
显然这是由http从原始https页面链接的请求引起的。但以下两次尝试也失败了:
src="//lead-123.com/js/8303.js"
src="https://lead-123.com/js/8303.js"
访问跟踪脚本的 https URL 表明它正在被提供(尽管存在安全错误)。
我相信 Lead Forensics 已经考虑过这一点。有谁知道是否有任何可以以某种方式使用的约定或变通方法,以便不会在站点上报告安全错误并进行跟踪工作?我找不到任何关于此的文档,并且迄今为止尝试与他们联系还没有成功。
**
我不确定脚本是否托管在https链接上。(它仅在我成功收到来自http链接的响应后才在我的浏览器中响应)。尽管如此,我仍在寻找关于如何处理这种情况的约定,或者如果使用 SSL,是否提供单独的链接,或者该技术是否甚至能够通过 SSL 工作。
我正在学习服务工作者 API。我在其中发现了更多很酷的功能。但让我兴奋的是,为什么它只适用于 https 站点而不适用于 http 站点?.
我相信这与安全有关,但我在浏览时找不到原因。因此,任何解释这一点的解释都值得赞赏......
javascript security https service-worker progressive-web-apps
完整的错误是这样的:
events.js:160
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND https://api.instagram.com https://api.instagram.com:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)
Run Code Online (Sandbox Code Playgroud)
我得到错误的代码是这样的:
var express = require('express');
var app = express();
var https = require('https');
app.get('/oauth/ig', function (req, res) {
var options = {
hostname: 'https://api.instagram.com',
path: '/oauth/access_token?client_secret=myClientSecret&grant_type=authorization_code&redirect_uri=http://localhost:1992/oauth/ig&code='+req.query.code,
method: 'POST',
};
var igRequest = https.request(options, (response) => {
res.send("response");
});
})
Run Code Online (Sandbox Code Playgroud)
我正在使用 nodejs 并且正在尝试进行 Instagram OAUTH。
我对 SSL / https 很陌生,但最终设法为我的网站创建了一个
现在的问题是这个奇怪的错误:
app.7e27c5b6c47cfaa5a0da.js:70 error occured for getting the country from: http://freegeoip.net/json/ {data: null, status: -1, config: {…}, statusText: "", headers: ƒ}
app.7e27c5b6c47cfaa5a0da.js:70 Mixed Content: The page at 'https://thaihome.co.uk/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://freegeoip.net/json/'. This request has been blocked; the content must be served over HTTPS.
Run Code Online (Sandbox Code Playgroud)
并且它以如此快的速度吐出错误以致浏览器几乎死了。
这是什么意思?我能做些什么来修复它?
我已经阅读了很多关于 http2 的文档,启用它似乎是安全的。但我需要 100% 确定我不会有任何回归,或者至少知道会发生什么回归。
什么会阻止我在我的生产 apache 服务器上启用 http2?我必须仔细检查什么配置?哪些新行为可能会给我带来麻烦?
HSTS 中 max-age 的目的是什么?如:
Strict-Transport-Security: max-age=100
Run Code Online (Sandbox Code Playgroud)
如果值超过 100,会发生什么?
是否有设置 max-age 的最佳实践?
谢谢 !
我创建了 web api,当尝试添加 ssl 时出现此错误,当代码尝试到达 web api 中的端点时,我收到此错误,这是一个自签名证书。
这是开发环境,使用 Visual Studio 2019 调试代码,但在尝试重新创建 ssl 证书后没有运气,检查了有关在 .net 核心应用程序中实现 https 的指南,但没有运气。
程序.cs:
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://*:5000")
.UseSetting("https_port", "5001")
.UseKestrel(options =>
{
options.Listen(System.Net.IPAddress.Any, 5000);
options.Listen(System.Net.IPAddress.Any, 5001,
listenOptions => { listenOptions.UseHttps("localhost.pfx", "A2345_678b"); });
})
.UseStartup<Startup>();
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs 中的配置服务:
services.AddSignalR();
services.AddMvc(options => options.EnableEndpointRouting = false).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "ClientApp/build";
});
services.AddDefaultIdentity<IdentityUser>().AddRoles<IdentityRole>()
.AddEntityFrameworkStores<SmartContext>();
services.AddMvc(
options =>
{
options.SslPort = 5001;
options.Filters.Add(new RequireHttpsAttribute()); …Run Code Online (Sandbox Code Playgroud) 我正在使用 Whoami 进行测试并在生成证书时遇到问题。
acme.json 文件中没有生成任何证书,并且站点使用的是 Traefik 的默认证书,导航器认为该证书无效。
这是错误:
traefik | time="2019-10-14T21:16:15Z" level=error msg="Unable to obtain ACME certificate for domains \"inner-whoami.mysite.com\": unable to generate a certificate for the domains [inner-whoami.mysite.com]: acme: Error -> One or more domains had a problem:\n[inner-whoami.mysite.com] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: Invalid response from https://inner-whoami.mysite.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxx [51.75.207.100]: \"Hostname: xxxxxxxxxx\\nIP: 127.0.0.1\\nIP: 172.18.0.2\\nRemoteAddr: 172.18.0.3:55692\\nGET /.well-known/acme-challenge/xxxxxxxxxx\", url: \n" rule="Host(`inner-whoami.mysite.com`)" routerName=inner-whoami-secured providerName=myhttpchallenge.acme
traefik | time="2019-10-14T21:16:17Z" level=debug msg="legolog: [INFO] Unable to deactivate the authorization: https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxx"
Run Code Online (Sandbox Code Playgroud)
这是 docker-compose.yml 文件。一切都在里面。如您所见,这是一个准备进一步部署的测试。不是实际的生产文件。我需要在能够使用 Traefik 服务器范围之前解决这个问题......
version: "3.3" …Run Code Online (Sandbox Code Playgroud) 从 Android 9 开始,Android 默认情况下仅允许通过 HTTPS 进行网络连接。然而,我正在做的唯一请求是通过本地主机(例如http://10.41.199.226:port/FooBar)完成的,该本地主机由HttpListener侦听该地址:端口组合的(C#)处理。
由于此请求是通过 HTTP 发出的,因此 Android 默认情况下不允许这样做。按照Android 关于该文件的文档,network_security_config我可以通过添加以下network_security_config.xml文件来允许 HTTP 连接
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
这是使用 Android 清单调用的android:networkSecurityConfig="@xml/network_security_config"。
这允许完成 HTTP 请求,但是因为这设置了基本配置,所以允许在整个应用程序中发出 HTTP 请求。这不是一个好主意,因为我将来可能想添加传出请求,我希望通过 HTTPS 发送请求,并且希望为此建立安全网。让这成为一条不可行的道路。
在同一文档中,他们进一步介绍了domain-config允许您根据域进行设置的功能cleartextTrafficPermitted,我尝试使用以下域集进行设置
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">127.0.0.1</domain>
<domain includeSubdomains="true">10.0.0.1</domain>
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
由于没有结果,请求仍然因不是 https …
https android http android-manifest android-network-security-config
我的 vue 组件正在 iframe 中加载外部内容
<iframe src="https://external-site" />
Run Code Online (Sandbox Code Playgroud)
在本地工作正常,但是一旦我部署到我的 https 站点
混合内容:“ https://my-site ”上的页面已通过 HTTPS 加载,但请求了不安全的框架“ http://external-site ”。此请求已被阻止;内容必须通过 HTTPS 提供。
网络选项卡显示 2 个请求,两个请求都有状态(已取消),并且请求 url 都是 HTTPS..
https ×10
http ×2
javascript ×2
security ×2
ssl ×2
android ×1
android-network-security-config ×1
apache ×1
c# ×1
docker ×1
http2 ×1
instagram ×1
lets-encrypt ×1
node.js ×1
oauth ×1
ssl-security ×1
traefik ×1
vue.js ×1