抓取网页数据php( 基于PHP实现的webshell攻击(一)——一个攻击)
优采云 发布时间: 2022-02-09 13:17抓取网页数据php(
基于PHP实现的webshell攻击(一)——一个攻击)
PHP的一些知识点研究(一), PHP知识点研究
一、基于PHP的Webshell攻击
看到了对暗云的基于 php 的 webshell 攻击。
高度隐藏的webshell使用普通的php代码,将真实的shell内容经过层层加密保存到图片中,只留下一个url,而且url还是被加密的,所以从外面看不出任何特征,所以很难被发现。打开上面的url,显示404,这个404页面是伪装成404的木马,只是标题改成了404NotFound。
二、不要使用orless else语句
对于ifelse,有人追求结构的完整性。如果有if,就一定有else。这看起来不错,但有时会导致代码繁琐,可能导致逻辑混乱;一个结果可以作为基准,当其他情况发生时进行if判断;即默认为A,有异常则为B;如下右图所示:
三、单页应用
单页是指所有的操作和布局都在一个页面下进行,不需要跳转页面,根据不同的用户请求加载不同的内容。
优点:页面结构简单、数据量小、节省带宽、响应速度快、体验好、易于开发、维护和优化;
缺点:使用ajax技术,不利于seo。
四、让搜索引擎抓取ajax内容
主要针对前面案例的单页结构,程序通过#structure url控制页面内容,但不会被搜索引擎抓取。
方法一:推特采用“井号+感叹号”的结构,但体验不好且繁琐;
方法2:使用HistoryAPI;在不刷新页面的情况下更改浏览器地址栏中显示的地址。进行如下操作:
A. 使用HistoryAPI替换井号结构,让每个#号变成正常路径的URL,这样搜索引擎会抓取每一个网页。
B、定义一个JavaScript函数,处理Ajax部分,根据URL爬取内容。
C、定义鼠标的点击事件,利用History对象的popstate事件来处理浏览器的“前进/后退”按钮。
D、设置服务器端。
五、CURL_MULTI_INIT()
以前一直用curl_init(),最近才看到curl_multi_init();本来以为会带来更高效的代码,但是看了curl_multi的步骤,感觉挺麻烦的,而且curl_multi可能会导致CPU高,网页假死等;同时对比curl_init和curl_multi_init,多线程在速度上不一定比单线程好。多线程只能同时处理多任务,时间成本不一定低。附上使用 curl_multi 的步骤:
第一步:调用curl_multi_init;
第二步:循环调用curl_multi_add_handle;
这一步需要注意,curl_multi_add_handle的第二个参数是来自curl_init的子句柄;
第三步:继续调用curl_multi_exec;
第四步:循环调用curl_multi_getcontent,根据需要获取结果;
第五步:调用curl_multi_remove_handle,对每个字句柄调用curl_close;
第 6 步:调用 curl_multi_close。
六、PHPstrstr() 函数
strstr(string,search) 在另一个字符串中搜索第一次出现的字符串。返回字符串的其余部分(从匹配点开始)。如果未找到搜索的字符串,则返回 false。
需要搜索。指定要搜索的字符串。如果参数是数字,则搜索与数字的 ASCII 值匹配的字符。
参考:。因此,在给第二个参数时,如果需要匹配数字,建议加引号。
七、论归一化的重要性
我家附近一条久治不愈的道路,通过划分人行道、非*敏*感*词*道、*敏*感*词*道,一下子解决了问题。有时灵活性导致选择太多,问题也很多;程序也是如此。用户输入的灵活性看起来很好,但实际上需要更多的后台处理成本。为什么不在早期标准化它,错误停止在源头,而不是修补它。规范化使一切变得简单而高效。
八、HHVM
HHVM (HipHopVirtualMachine) 将 PHP 代码转换为高级字节码(通常称为中间语言)。然后,这些字节码在运行时由即时 (JIT) 编译器转换为 x64 机器码。
数据显示,相比 Zend,HHVM 效率更高,CPU 负载降低,平均页面加载时间缩短。HHVM的存在是为了优化PHP的性能。和php5相比,确实有一些优势,还是等php7吧。
九、PHP源码签名采集器
在学习新的、不熟悉的源代码时,对代码结构有一个直观的感觉很重要。可以通过从每个源文件中逐行取标点来概括,即文件签名。这有助于解释代码的复杂性。其实就是提取代码文件中的固定符号来呈现文件的结构。
参考:
十、协同过滤推荐算法
1、基于内容的推荐算法的前提是,如果用户喜欢物品a,那么用户也应该喜欢与a相似的物品。其基本思想是拆分内容属性,提取具有相同属性的内容进行推荐。
2、协同过滤推荐算法的前提是,如果用户a和用户b都喜欢一系列相同的物品,那么a很有可能喜欢用户b喜欢的其他物品。基本流程是用户首先对每个项目进行评价和评分,通过计算不同用户评分之间的相似度,可以找到最近邻,并根据最近邻的评价生成推荐。
以上算法均采用矩阵建模,使用余弦相似度、皮尔逊相似度等公式。使用时建议将两者合二为一。
trueTechArticlePHP的一些知识点研究(一),php知识点研究一、 PHP-based webshell attack 见一个基于php的暗云webshell攻击。高度隐藏的webshell,使用...