python-打开网站时龙卷风403获取警告

我找到了这个Python脚本,应该可以打开WebSocket。但是,尝试打开实际的WebSocket(使用Old WebSocket Terminal Chrome插件)时,我在Linux终端中收到警告[W 1402720 14:44:35 web:1811] 403 GET / (192.168.0.102) 11.02 ms。 消息“连接已打开”,“连接已关闭”和“消息已接收”永远不会在终端窗口中打印。

import tornado.httpserver

import tornado.ioloop

import tornado.options

import tornado.web

import tornado.websocket

class MyHandler(tornado.websocket.WebSocketHandler):

def open(self):

print "connection opened"

self.write_message("connection opened")

def on_close(self):

print "connection closed"

def on_message(self,message):

print "Message received: {}".format(message)

self.write_message("message received")

if __name__ == "__main__":

tornado.options.parse_command_line()

app = tornado.web.Application(handlers=[(r"/",MyHandler)])

server = tornado.httpserver.HTTPServer(app)

server.listen(8888)

tornado.ioloop.IOLoop.instance().start()

3个解决方案

98 votes

请加

def check_origin(self, origin):

return True

在像这样的MyHandler类中

class MyHandler(tornado.websocket.WebSocketHandler):

def check_origin(self, origin):

return True

def open(self):

print "connection opened"

self.write_message("connection opened")

def on_close(self):

print "connection closed"

def on_message(self,message):

print "Message received: {}".format(message)

self.write_message("message received")

从DOC:

默认情况下,[check_origin]拒绝源于主机以外的主机的所有请求 这个。

这是针对跨站点脚本攻击的安全保护 浏览器,因为允许WebSocket绕过通常的相同来源 政策,并且不要使用CORS标头。

然后再次:

这是一项重要的安全措施。 没有它就不要禁用它 了解安全隐患。 特别是如果您 身份验证是基于Cookie的,您必须限制来源 由check_origin()允许或实施您自己的类似XSRF的保护 用于websocket连接。 有关更多信息,请参见这些文章。

链接。

maxhawkdown answered 2020-07-18T00:16:09Z

1 votes

略微修改了@maxhawkdown的解决方案。

from tornado.util import PY3

if PY3:

from urllib.parse import urlparse # py2

xrange = range

else:

from urlparse import urlparse # py3

class ChatHandler(tornado.websocket.WebSocketHandler):

CORS_ORIGINS = ['localhost']

def check_origin(self, origin):

parsed_origin = urlparse(origin)

# parsed_origin.netloc.lower() gives localhost:3333

return parsed_origin.hostname in self.CORS_ORIGINS

guneysus answered 2020-07-18T00:16:29Z

1 votes

不要将return True设置在check_origin()上,因为这是一种安全威胁,请改用允许的域列表,即:

def check_origin(self, origin):

allowed = ["https://site1.tld", "https://site2.tld"]

if origin in allowed:

print("allowed", origin)

return 1

Pedro Lobito answered 2020-07-18T00:16:49Z

python代码写龙卷风_python-打开网站时龙卷风403获取警告相关推荐

  1. python代码写名字_python|教你一行代码用Ta的名字比心

    关注我们:科技与Python 故事是这样的:你的女朋友名字叫andy,由于她学习上的需求,需要学习一些编程.(当然作为男朋友,是很有义务帮女朋友解决问题的.) 教他写程序的时候,如果先秀一下这行代码, ...

  2. python代码写名字_python代码实现给儿子儿女取名字

    方法提高了,create_one_name随机生成指定姓式的方法,还有随机生成一个男性名字的方法和一个女性名字的方法.最后是随机指定给儿子取名的方法或者给女儿取名的方法. 注意:一次不要生成超过取不重 ...

  3. python代码写好了怎么运行不了-python代码可以直接运行吗 Python写了代码如何运行...

    先下载python,然后打开命令行,输入 python 你的代码文件名. 有python代码怎么编成可执行的exe程序? 如果可以能否帮小编做成可执行的exe程序儿女情长什么的,真的很影响小编行走江湖 ...

  4. Python代码写好了怎么运行?

    Python代码写好了怎么运行?相信问这样问题的朋友一定是刚刚入门Python的初学者.本文就来为大家详细讲讲如何运行Python代码.一般来讲,运行Python代码的方式有两种,一是在Python交 ...

  5. Python代码写好了怎么运行?为大家详细讲讲如何运行Python代码

    Python代码写好了怎么运行?相信问这样问题的朋友一定是刚刚入门Python的初学者.本文就来为大家详细讲讲如何运行Python代码.一般来讲,运行Python代码的方式有两种,一是在Python交 ...

  6. python爬取网站时,一键获取headers、url等信息(真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽)

    python爬取网站时,一键获取headers.url等信息 (真的是让我爬取网站时,省了不少力气,作为小秘密分享给大家喽) 作为Python的使用者,我今天就和大家来分享分享我学习python的经验 ...

  7. python怎么实现音乐快进_如何用PYTHON代码写出音乐【】

    如何制作MIDI(用于vocaloid 3) 我也是因为V家才来找midi的 如何用PYTHON代码写出音乐 在python-midi,每个乐谱用Pattern对象表示,乐的每个音轨(通常音乐很多轨道 ...

  8. 如何避免把 Python 代码写得跟屎一样?

    同样的功能,你可以使用不同的代码方式来实现,它们,都可以跑的起来,而在背后的那些「跳动」着的代码,有的美如诗,有的丑如屎...如果说,代码是有生命的,那么你希望它是温柔的天仙,还是抠脚的大汉? 你在 ...

  9. 用python编写一个求偶数阶乘的函数_一行Python代码写阶乘函数

    原标题:一行Python代码写阶乘函数 背景 我以前用Dart写过一行的阶乘函数: fact(double n) => n < 0 ? throw ('n must be bigger t ...

  10. python text insert()背景色_50行python代码写个计算器教程

    案例展示 计算器.gif 你能学到 input 用户输入 print输出 tkinter图形界面 python运算符号 基础知识准备 运算符号 数字运算,求和我们使用了加号 (+)运算符,除此外,还有 ...

最新文章

  1. 盘点|最实用的机器学习算法优缺点分析,没有比这篇说得更好了
  2. PYTHON——TCPUDP:Socket实现远程执行命令
  3. 两个负数相减计算机如何表示,计算机如何表示整数
  4. linux之用xargs删除这个目录下面后缀为txt的文件(包括子目录)
  5. OpenCV中直方图的计算和绘制
  6. CSS 背景图片 设置居中
  7. Eclipse 好用常用插件集合
  8. 关于gevent的协程间通信及队列和事件event用法
  9. 190219每日一句
  10. 搭建STM32开发环境——STM32CubeMX并配合Keil5重写跑马灯程序
  11. Linux虚拟机下载和安装简单流程
  12. 2018蓝桥杯校选复现3
  13. 【动手学深度学习】李沐——卷积神经网络
  14. Java毕设项目城市公交系统计算机(附源码+系统+数据库+LW)
  15. (4)直线的生成之中点画线法
  16. Photon Socket 术语表
  17. wps分享为什么要登入_杭州诠网科技有限公司分享seo优化为什么要做网站地图
  18. Pycharm的快捷键
  19. Xcode的几个编译设置
  20. 中国营销新闻网新闻发布

热门文章

  1. Shiro 常用标签
  2. 在网站添加客服QQ,打开临时回话框(不用加为好友)
  3. Il2CppDumper的使用方法,ILSpy中文版的下载地址
  4. ROS IntelRealSenseZR300 PCL+ORK+Linemod 柱状物体检测 机械臂抓取 系列第二篇
  5. window安装python27和配置环境变量
  6. java 加密压缩文件
  7. 3.1、如何通过ISP(FlyMcu串口)下载程序(附CH340驱动及FlyMcu安装包)
  8. 局域网文件自动同步更新服务器版,自同步(局域网文件实时同步工具) V2.1.0 官方安装版...
  9. AWS和阿里云对比研究二—阿里云
  10. sql-插入当前时间