首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何以编程方式测试网站是否使用HTTPS?

如何以编程方式测试网站是否使用HTTPS?
EN

Stack Overflow用户
提问于 2015-03-06 14:49:17
回答 2查看 1.5K关注 0票数 2

我想要构建一个脚本的某种类型,可以判断一个网站是否使用https。

以编程方式确定这一点的方法是什么?我尝试访问我自己的一个域,我知道它没有https,但是服务器仍然给了我200段代码(至少根据我使用的Chrome扩展)。

是否有某种错误,我可以捕捉,或其他一些信息,将是一致的网站?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-06 17:26:59

从理论上讲,应该由您预先知道是否应该使用HTTPS。我的意思是,用户对某些站点使用HTTPS有一定的判断。在现实世界中,当你走进你的银行和走进一家咖啡店时,你通常会有不同的安全期望。一般情况下,你不会像给你的银行家那样,向酒吧后面的人提供同样的细节。在网络上也是如此。

也就是说,您确实可以测试是否可以建立到某个网站的HTTPS连接。问题是,无法建立这种联系可能意味着以下几点:

  • 那个网站根本不支持HTTPS,
  • 有个暂时的连接问题,
  • 有个攻击者阻止你建立那个连接。

许多站点将尝试通过重定向将您从HTTP升级到HTTPS,以使用户意识到HTTPS是可用的,并希望在下次访问该站点时让他们期待它。有些站点甚至会使用HTTP严格传输安全(HSTS)来迫使您下次访问该站点时记住升级。这是一个合理的妥协,如果你可以假设你的第一个连接是没有缓和的。

以编程方式确定这一点的方法是什么?我尝试访问我自己的一个域,我知道其中一个域没有https,但是服务器仍然给了我200个代码。

如果您的域没有有效的证书,那么证书验证就会失败,并且您应该无法获得任何HTTP状态代码作为响应。

我猜想您所使用的脚本没有进行任何证书验证,而且可能这些域指向共享主机环境,其中具有相同IP地址的其他服务都启用了HTTPS。

您至少应该确保脚本正确地验证证书:

  • 您应该能够验证证书是真实的,并且是由您信任的CA颁发的,并且及时有效。( RFC 3820和RFC 5820中通常都有这样的规定)
  • 您应该能够验证它对于您要查找的主机名是否有效。( RFC 2818和RFC 6125中通常都有这样的规定。)

并非所有SSL/TLS库都默认启用了此功能(特别是第二点)。

我不确定您在脚本中使用了什么,或者您提到的扩展名是做什么的。例如,如果您使用的是curl,请确保您没有使用-k--insecure,并且您使用的是wget,请确保您没有使用--no-check-certificate。如果您使用的是libcurl,您应该确保自己是适当地。如果您使用的不是其他实现,请在其他实现中寻找类似的选项,并且不要忽略浏览器警告。

票数 2
EN

Stack Overflow用户

发布于 2015-03-06 15:45:20

在Windows上,您可以使用免费基础版HttpWatch及其自动化接口编写访问要测试的站点的程序。

误差性质 on Entry类允许您检测HTTP失败的情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28909015

复制
相关文章
python zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:
py3study
2020/01/17
7450
Python zip() 函数
zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同。利用 * 号操作符,与zip相反,进行解压
狼啸风云
2019/07/02
8620
python内置函数zip()
用途:在多个迭代器上并行迭代,从每个迭代器返回一个数据项组成元组。特色用法:实现行列互换
用户2794661
2022/05/12
4940
11.python zip函数
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,返回的结果可以直接强转为list列表,这样做的好处是节约了不少的内存!
猿说编程[Python和C]
2020/03/12
4130
Python自带函数map(),zip(
map(function, sequence[, sequence, ...]) -> list
py3study
2020/01/15
6970
Python 内置函数之——zip()
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 *号操作符,可以将元组解压为列表。我们看一下演示代码。
小白学视觉
2022/09/28
3900
Python 内置函数之——zip()
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 *号操作符,可以将元组解压为列表。我们看一下演示代码。
abs_zero
2020/08/28
6120
Python:zip 函数的用法
zip() 接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个 tuple,然后返回由这些 tuple 组成的 list。
丹枫无迹
2019/09/11
1.2K0
Python基础:理解enumerate函数和zip函数
本文将通过几个示例介绍Python中的enumerate()函数和zip()函数。
fanjy
2022/06/04
2.3K0
Python基础:理解enumerate函数和zip函数
简单瞅瞅Python zip()函数
返回一个zip对象,其.__ next __()方法返回一个元组,其中第 i 个元素分别来自各可迭代对象的第 i 个参数。.__ next __()方法一直持续到参数序列中最短的iterable(可迭代对象)耗尽,然后它抛出StopIteration。
py3study
2020/01/02
3630
Python 列表(元组)的count函数
列表(元组)的count函数 功能 返回当前列表中某个成员的个数 用法 inttype = list.count(item) 参数 item : 你想查询个数的元素 注意事项 如果查询的成员(元素)不存在,则返回 0 列表只会检查完整元素是否存在需要计算的内容 列表和元组的count是一致的 代码 # coding:utf-8 animals = ['小猫', '小狗', '龙猫', '小猫', '鹦鹉', '小狗', '小兔子', '小猫'] cat = animals.count('小猫')
Zkeq
2022/05/18
8770
python3的zip函数
zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象.
py3study
2020/01/03
4160
Groovy 元组构造函数创建
Groovy 1.8添加了@TupleConstructor注释。 通过这个注释,我们可以在编译时自动创建一个元组构造函数。 因此构造函数可以在编译的类中找到。 对于类中的每个属性,将使用默认值创建构造函数中的参数。 类中定义的属性的顺序还定义了构造函数中参数的顺序。 因为参数具有默认值,所以我们可以使用Groovy语法,并在使用构造函数时将参数留在参数列表的末尾。
白石
2019/09/18
1.3K0
Python文档研读系列:zip函数
zip([iterable, ...]) This function returns a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. The returned list is truncated in length to the length of the shortest argument sequence. When the
Python中文社区
2018/01/31
5350
Python文档研读系列:zip函数
Python好酷|zip函数的妙用
专注测试圈,自动化测试、测试平台开发、测试新技术、大厂测试岗面经分享, 可以帮忙内推BATJ等大厂!
互联网金融打杂
2022/08/01
4440
在函数中接受元组与字典
# 在函数中接受元组与字典 有一种特殊方法,即分别使用 * 或 ** 作为元组或字典的前缀,来使它们作为一个参数为 函数所接收。当函数需要一个可变数量的实参时,这将非常有用。 # 代码 # 当args变量前面添加了一个*时,函数的所有其他的参数都将传递到args中,并作为一个元组储存 # 如果采用的是 ** 前缀,则额外的参数将被视为字典的键值—值配对。 def powersum(power, *args): '''Return the sum of each argument raised to
benym
2022/07/14
1.2K0
zip函数-求最长公共前缀
用python解决问题的方法有很多:函数法、暴力法以及一些常见的算法等等,而且python 的很多基础题用函数来解决是非常快捷的。熟练掌握函数的方法和技巧能够更好地解决问题,思路更加清晰。
小小科
2020/05/28
6080
点击加载更多

相似问题

knockout js if绑定和脚本

20

在knockout js上执行不是真的检查绑定?

32

knockout js中的无线电验证

12

如何基于绑定值在Knockout.js中隐藏按钮

34

Knockout Js:-带有删除按钮的标签绑定

111
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文