php 网页内容抓取(是从攻防世界web组学到的介绍部分摘自百度百科或维基百科 )
优采云 发布时间: 2022-03-30 13:22php 网页内容抓取(是从攻防世界web组学到的介绍部分摘自百度百科或维基百科
)
这东西主要是从攻防世界网群那里学来的。Reverse的方向太难了,现在基本处于放弃的状态。我可能有时间做网络组的问题并获得见解。另一部分是在网站中间学的或者问的。
下面的介绍部分通常取自百度百科或维基百科。
机器人协议
Robots Protocol(也称Crawler Protocol、Robot Protocol等)的全称是“Robots Exclusion Protocol”。网站通过Robots Protocol,告诉搜索引擎哪些页面可以爬取,哪些页面不能爬取。搜索引擎爬虫访问网站时,首先会检查网站根目录下是否存在robots.txt。如果存在,搜索引擎爬虫会根据文件内容判断访问范围;如果该文件不存在,则搜索引擎爬虫沿着该链接爬取。
使用该协议,需要将robots.txt文件放在根目录下,告诉爬虫哪些可以爬,哪些不能爬。在文件中设置规则:
User-agent: *
Disallow: /local
Disallow: /none/a.html
以上规则禁止所有用户代理(包括爬虫)在/local目录下的/none目录下搜索和不搜索a.html页面。一个User-agent下可以有多个Disallows,文件中可以有多个User-agents(每个之间需要一个空格)。
User-agent 是爬虫使用的名称,见
注1:此协议并不完全可靠,爬虫可能不遵循此规则。因此,它可以被视为君子协定,而不是完全通用的规范。
注2:检索采用的是相对url的字符串匹配规则,所以url末尾有'/'和没有'/'是有区别的。
站点地图 网站地图
站点地图是 网站 管理员通知搜索引擎他们 网站 可以抓取哪些页面的便捷方式。在最简单的形式中,站点地图是一个 XML 文件,其中列出了 网站 中的 URL 以及有关每个 URL 的其他元数据(最后更新时间、更改频率以及其他 URL 的相对重要性等),以便搜索引擎可以更智能地抓取 网站。Sitemap.xml 放置在 网站 根目录中。网上有很多站点地图生成工具。
在国内,网站的很大一部分流量来自百度搜索引擎,但是百度不再支持sitemap,所以一般最好生成一个baidusitemap.xml文件,然后提交网页。在顶部的用户中心 -> 站点管理中添加网页。您需要验证它是您自己的。
提交网页后,您可以在收录再次提交baidusitemap。
饼干
Cookies,有时是复数形式的 Cookies。类型为“小文本文件”,是存储在用户本地终端上用于识别用户身份和进行会话跟踪的一些数据(通常是加密的),由用户的客户端计算机临时或永久保存。. 当客户端再次访问 Web 文档时,此信息可用于文档。
cookie 存储在 document.cookie 中。如果要查看网页cookie,可以F12调出开发者选项,点击控制台(Console),输入命令:
console.log(document.cookie);
禁用cookies:一般浏览器设置/互联网选项可以设置为禁止使用cookies。比如这里的谷歌浏览器:
不过需要注意的是,网站退出后重新登录后短时间内不需要重新登录的机制也是基于cookies的,所以关闭后可能会有点麻烦。
网页参数
GET方法:可以有一个简单的方法。如果是php页面,将浏览器显示的页面url上的值以?variable name 1=value 1&variable name 2=value 2...的形式传递。
比如你用360搜索“传值”,会在页面url上找到q="传值"
实际上是它的服务器代码完成了分配。也可以手动分配。
== 和 === 比较在 php 中是不同的,前者只比较值。如果判断a==0,如果a是不能转为数字的字符串,则转为0,结果相等。这种情况可能会导致安全风险。
POST 方法不能直接传递值。但是可以使用Burpsuite等工具,可以使用浏览器插件,也可以使用curl来生成。而POST可能会改变网站的状态,虽然通常在没有设置处理POST提交的页面上,POST提交是没有效果的。但是如果系统被黑了,攻击者会悄悄地在页面上留下一段代码:
这是php中最经典最简单的后门代码。如果 eval 接收到的字符串是可执行的,则会自动执行。此执行可以执行主机代码。例如,攻击者在 POST 请求的正文中写道:
你好=系统(“rm -rf *”);
一切都必须删除。菜刀工具也可以通过后门直接连接主机。
虽然代码审计工具可以检测出大部分后门,但这句话可以成为后门:
GET 通常被认为是安全的。因此,仅仅依靠检测是不现实的。防止它的根本方法是建立安全组策略来防止入侵,进行严格的权限分配(入侵没有权限),并及时查看和备份服务器日志。
题外话:本以为限制同一个IP的登录失败次数可以防止主机密码被破解,但我发现仅靠Burpsuite就可以实现多个随机IP冲突,更不用说IP代理池技术了。目前的一套保护策略真的是经验问题,少一步可能导致钻漏洞。
页面重定向
如果用户访问一个页面,如果他们不打算显示这个页面而是打算跳转到另一个页面,可以进行页面重定向。
Web服务器可以通过在GET请求的响应消息中设置Location字段进行重定向,比如“Location:index.html”,那么浏览器在解析的时候会自动进入index.html页面,GET请求的页面如果未设置,将默认解析。这可以通过服务器设置来实现。在这种情况下,使用 3xx 状态码,例如 301(永久移动)、302(临时移动)。
另外,也可以用js实现:
setTimeout("javascript:location.href='index.html'", 300); //300毫秒后跳到index.html页面。