python html5 bootstrap 视频教程

德云社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1911|回复: 0

Python GUI 编程 QtWebKit.QWebPage.userAgentForUrl(url) 无限死循环漏洞

[复制链接]

137

主题

156

帖子

909

积分

高级技师

Rank: 4

金钱
587
金币
15
威望
0
贡献
0
发表于 2016-7-15 04:20:01 | 显示全部楼层 |阅读模式
Python GUI 编程 QtWebKit.QWebPage.userAgentForUrl(url) 无限死循环漏洞

这段时间搞 GUI 界面编程,除遇到一些常见小问题外,还有一种比较难发现的死循环问题。


这种不太常见的死循环问题,从代码角度和语法上看,一点问题也没有,但运行时,就可能是您程序的恶梦。当然,你自已弄出来的一些死循环也会有,但 IDE 会提示。


此处要说的,是 IDE 根本发现不了,也不会提示的程序源代码陷井。


此处要说一说 QtWebKit.QWebPage.userAgentForUrl(url) 函数,当 HTTP 请求用户代理时,此函数会返回 URL 用户代理 "字符串信息"


User-Agent 英文简称 UA,中文译为 “用户代理”。User-Agent 是 HTTP 协议的一部分,属于请求头域。


User-Agent 是向访问网站提供所用浏览器类型及版本、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件、等信息的一特殊字符串头标识。


User-Agent 字符串在每次浏览器进行 HTTP 请求时,会被发送到服务器!


某些网站常通过判断 User-Agent 来给不同操作系统、不同浏览器发送不同页面;因此,可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 User-Agent 可绕过此种检测。


user-agent 作用

01、统计用户浏览器使用情况。

有些浏览器说被多少人使用了,实际上就可通过判断每个IP 的 UA 来确定这个 IP 是用什么浏览器访问的,以得到使用量的数据。


02、根据用户使用浏览器的不同,显示不同的排版从而为用户提供更好的体验。

有些网站会根据这个来调整打开网站的类型,如是手机就打开 wap,非手机的就打开 pc 常规页面。用手机访问谷歌和电脑访问是不一样的,这些是谷歌根据访问者的 UA 来判断的。


03、伪装 user agent 以回避某些侦测特定浏览器才能读取的网站。

如使用 Firefox 浏览器插件 User agent switcher,用户可轻松在不同 UA 之间切换,把自己伪装成其他浏览器。这样就可在 PC 上预览 WAP 或移动格式的网页,譬如:专为 iPhone 设计的页面。


user-agent 值

ASP.NET 使用 Request.Header["User-Agent"] 或 Request.UserAgent


Java 使用 request.getHeader(”User-Agent”)


Python 使用 Request.headers.get("User-agent")


PHP 使用:$_SERVER[HTTP_USER_AGENT];


JS 使用 navigator.userAgent


QtWebKit.QWebPage.userAgentForUrl(url) 函数

以下是正确代码形式:

  1. def userAgentForUrl(self, url):
  2.     return user_Agent
复制代码

以下是可能会出现死循环的代码形式:

  1. def userAgentForUrl(self, url):
  2.     p= N_Class()

  3.     if c == "32bit":
  4.         user_Agent = p.a

  5.     else:
  6.         user_Agent = p.b
  7.    
  8.     return user_Agent
复制代码


请关注 "德云社区" 及其微信公众号,了解相关资讯

版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究其法律责任。

AI人工智能 语音助理 人工翻译 教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|Sitemap|小黑屋|德云社区  |网站地图  

GMT+8, 2020-9-27 12:49 , Processed in 0.046148 second(s), 31 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

快速回复 返回顶部 返回列表