【vip解析系统源码】【股市看跌指标源码】【源码数据采集】proxy php源码

时间:2024-12-24 07:03:06 编辑:B 站后端源码 来源:crtmpserver 源码分析

1.如何在系统安装ARGB
2.代理易程序语言
3.微信OAuth2.0授权回调页面域名设置问题
4.各种编程语言配置代理IP(python,源码php,java,nodejs,ruby...)
5.yxcms登入后台

proxy php源码

如何在系统安装ARGB

       nginx php-fpm安装配置

       nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。

       nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx

       æœ¬æ–‡ä»¥php-fpm为例介绍如何使nginx支持PHP

       ä¸€ã€ç¼–译安装php-fpm

       ä»€ä¹ˆæ˜¯PHP-FPM

       PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 2.php.net/distributions/php-5.4.7.tar.gztar zvxf php-5.4.7.tar.gz

       cd php-5.4.7./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt \--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir

       make all install

       æ—§ç‰ˆæ‰‹åŠ¨æ‰“补丁php-fpm安装(旧版程序已经没有了,大家新版的吧,这里做个展示)

       wget 2.php.net/get/php-5.2..tar.gz

       wget tl -enable-sockets  -with-bz2 -with-curl -with-curlwrappers\

       -enable-mbregex -with-gd -enable-gd-native-ttf -enable-zip -enable-soap -with-iconv -enable-bcmath\

       -enable-shmop -enable-sysvsem -enable-inline-optimization -with-ldap -with-ldap-sasl -enable-pdo\

       -with-pdo-mysql

       make all install

       ä»¥ä¸Šä¸¤ç§æ–¹å¼éƒ½å¯ä»¥å®‰è£…php-fpm,安装后内容放在/usr/local/php目录下

       ä»¥ä¸Šå°±å®Œæˆäº†php-fpm的安装。

       ä¸‹é¢æ˜¯å¯¹php-fpm运行用户进行设置

       cd /usr/local/php

       cp etc/php-fpm.conf.default etc/php-fpm.conf

       vi etc/php-fpm.conf

       ä¿®æ”¹

       user = www-data

       group = www-data

       å¦‚æžœwww-data用户不存在,那么先添加www-data用户

       groupadd www-data

       useradd -g www-data www-data

       äºŒã€ç¼–译安装nginx

       ç„¶åŽnginx:

       nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。

       æ­£å¼å¼€å§‹å‰ï¼Œç¼–译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。

       ububtu平台编译环境可以使用以下指令

       1

       2

       apt-get install build-essential

       apt-get install libtool

       centos平台编译环境使用如下指令

       å®‰è£…make:

       1

       yum -y install gcc automake autoconf libtool make

       å®‰è£…g++:

       1

       yum install gcc gcc-c++

       ä¸‹é¢æ­£å¼å¼€å§‹

       ---------------------------------------------------------------------------

       ä¸€èˆ¬æˆ‘们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

       1.选定源码目录

       å¯ä»¥æ˜¯ä»»ä½•ç›®å½•ï¼Œæœ¬æ–‡é€‰å®šçš„是/usr/local/src

       1

       cd /usr/local/src

       2.安装PCRE库

       ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ ä¸‹è½½æœ€æ–°çš„ PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

       1

       2

       3

       4

       5

       6

       7

       cd /usr/local/src

       wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8..tar.gz

       tar -zxvf pcre-8..tar.gz

       cd pcre-8.

       ./configure

       make

       make install

       3.安装zlib库

       e to nginx! 则表示 Nginx 已经安装并运行成功。

       -----------------------------------------------------

       åˆ°è¿™é‡Œnginx就安装完成了,如果只是处理静态html就不用继续安装了

       å¦‚果你需要处理php脚本的话,还需要安装php-fpm。

       ä¸‹é¢å®‰è£…排错

       é™„:可能遇到的错误和一些帮助信息

       1.1编译pcre错误

       1

       2

       3

       4

       5

       libtool: compile: unrecognized option `-DHAVE_CONFIG_H'

       libtool: compile: Try `libtool --help' for more information.

       make[1]: *** [pcrecpp.lo] Error 1

       make[1]: Leaving directory `/usr/local/src/pcre-8.'

       make: *** [all] Error 2

       è§£å†³åŠžæ³•ï¼šå®‰è£…g++,别忘了重新configure

       1

       2

       3

       4

       5

       apt-get install g++

       apt-get install build-essential

       make clean

       ./configure

       make

       1.2 make出错

       1

       2

       3

       4

       5

       make: *** No rule to make target `build', needed by `default'.  Stop.

       ./configure: error: SSL modules require the OpenSSL library.

       You can either do not enable the modules, or install the OpenSSL library

       into the system, or build the OpenSSL library statically from the source

       with nginx by using --with-openssl=<path> option.

       æŒ‰ç…§ç¬¬4步的安装方法或

       ubuntu下

       1

       2

       apt-get install openssl

       apt-get install libssl-dev

       centos下

       1

       yum -y install openssl openssl-devel

       2.nginx编译选项

       make是用来编译的,它从Makefile中读取指令,然后编译。

       make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

       configure命令是用来检测你的安装平台的目标特征的。它定义了系统的各个方面,包括nginx的被允许使用的连接处理的方法,比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本,执行结束时,它会创建一个Makefile文件。nginx的configure命令支持以下参数:

       --prefix=path    定义一个目录,存放服务器上的文件 ï¼Œä¹Ÿå°±æ˜¯nginx的安装目录。默认使用 /usr/local/nginx。

       --sbin-path=path è®¾ç½®nginx的可执行文件的路径,默认为  prefix/sbin/nginx.

       --conf-path=path  è®¾ç½®åœ¨nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf.

       --pid-path=path  è®¾ç½®nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid.

       --error-log-path=path è®¾ç½®ä¸»é”™è¯¯ï¼Œè­¦å‘Šï¼Œå’Œè¯Šæ–­æ–‡ä»¶çš„名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为prefix/logs/error.log.

       --pilation”(1.1.中, pcre_jit指令)。

       --with-zlib=path â€”设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.5)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_;    

       2. 然后把php_weixin_proxy里面的index.php部署到proxy.your.com

       php_weixin_proxy下的index.php是一个很简单的php文件,你可以直接查看源码了解它的源码实现方式。因为当前项目的源码环境,我采用php来完成这个代理服务实现,源码实际上,源码你完全可以用任意平台语言来完成类似的源码vip解析系统源码功能。

       当其它业务需要发起微信授权时,源码将授权请求先发到proxy.your.com,源码然后proxy.your.com会把这个请求转发到微信;  

       当用户同意授权后,源码proxy.your.com会收到微信的源码授权回调,并把回调结果(code、源码state参数)原封不动地再返回给最开始发起授权的源码业务。

       唯一的源码区别在于,在不使用proxy.your.com的源码时候,你从应用发起微信授权的源码链接应该是这样的:  

       /connect/qrconnect?appid=xxxxx&redirect_uri=%2F&response_type=code&scope=snsapi_login&state=bceff#wechat_redirect    

       用了proxy.your.com之后,这个授权链接就应该是这样的:    

       /?appid=xxxxx&redirect_uri=%2Flogin%2Fnotify&response_type=code&scope=snsapi_base&state=bceff&device=pc

       后面这个链接跟上面的比:  

       1. 后面的链接中的host变成了proxy.your.com,也就是代理的授权回调域名;    

       2. 后面的多了一个device参数,这个是必要的。因为微信pc端跟移动端的授权地址是不一样的,而后面的股市看跌指标源码链接是发送个proxy.your.com的,所以需要多加个参数告诉它在转发给授权申请给微信的时候,是用PC端还是移动端的授权地址。

       1. 用户从我们的应用触发需要授权的操作,比如点击微信登录;    

       2. 应用收到这种用户请求后,将用户重定向到微信提供的一个授权页面:    

       或    

       3. 用户通过微信扫码(PC端授权,上边左图)或者点击确认按钮(移动端授权,上边右图)告知微信,授权应用访问自己的微信账号信息;    

       4. 微信收到用户的授权许可后,生成授权码,并把它作为参数回调至应用的某个页面;    

       5. 应用的回调页面在接收到微信的回调请求后,拿到其中的授权码,并通过微信官方提供的access token api接口获取access token;    

       6. 最后通过access token以及微信官方提供的另一个userinfo api接口就能获取到用户的微信账号信息。

       为了实现这个过程,首先要为应用申请一个微信公众号,并将应用最终部署的域名设置到微信公众号设置里面的授权回调页面域名这个选项里面。微信官方对这个选项的说明如下:

       关于网页授权回调域名的说明

       1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。源码数据采集请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 ,配置以后此域名下面的页面/music.html 、 /login.html 都可以进行OAuth2.0鉴权。但 、 、 无法进行OAuth2.0鉴权

       3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可

       由此可见,这个规则极其严格。如果说我们的应用最终部署的时候只有一个域名,那么这种规则不会有什么问题;但是考虑到将来应用的复杂性,我们可能在应用设计之初就会对应用做拆分,然后不同的业务采用不同的二级域名来部署。比如一个带有交易的应用,你可能会把登录注册,怎么查看gi源码交易管理和常规业务都独立出来,然后采用以下的方式来部署它们:  

       www.your.com 部署常规业务;    

       trade.your.com 部署交易管理的业务;    

       passport.your.com 部署登录注册的业务;    

       在这种模式下,如果集成微信登录和微信支付,前面说的授权回调页面域名的规则就会给应用带来问题。在这里:至少可以确认trade.your.com和passport.your.com都需要前面的介绍的用户微信授权,但是它们是两个不同的子域名,而且我们只有一个公众号;根据授权回调页面域名的原则,它只能用一个域名,并且只有回调地址的域名与该设置完全相同,才能成功发起微信授权,否则就会提示rediret_uri参数错误或者引发无法回调的问题。

       那么这种情况该如何处理?

       当下的解决方案是引入一个新的非常简单的应用来作为微信授权的代理服务,可以这么做:  

       1. 把公众号的网页授权接口域名设置成另外一个子域名,如proxy.your.com;    

       2. 然后把php_weixin_proxy里面的index.php部署到proxy.your.com

       php_weixin_proxy下的index.php是一个很简单的php文件,你可以直接查看源码了解它的实现方式。因为当前项目的环境,我采用php来完成这个代理服务实现,实际上,你完全可以用任意平台语言来完成类似的简阳离成都源码功能。

       当其它业务需要发起微信授权时,将授权请求先发到proxy.your.com,然后proxy.your.com会把这个请求转发到微信;  

       当用户同意授权后,proxy.your.com会收到微信的授权回调,并把回调结果(code、state参数)原封不动地再返回给最开始发起授权的业务。

       唯一的区别在于,在不使用proxy.your.com的时候,你从应用发起微信授权的链接应该是这样的:  

       /connect/qrconnect?appid=xxxxx&redirect_uri=%2F&response_type=code&scope=snsapi_login&state=bceff#wechat_redirect    

       用了proxy.your.com之后,这个授权链接就应该是这样的:    

       /?appid=xxxxx&redirect_uri=%2Flogin%2Fnotify&response_type=code&scope=snsapi_base&state=bceff&device=pc

       后面这个链接跟上面的比:  

       1. 后面的链接中的host变成了proxy.your.com,也就是代理的授权回调域名;    

       2. 后面的多了一个device参数,这个是必要的。因为微信pc端跟移动端的授权地址是不一样的,而后面的链接是发送个proxy.your.com的,所以需要多加个参数告诉它在转发给授权申请给微信的时候,是用PC端还是移动端的授权地址。

       整体方案思路:

       小结:

       这个方案我测试过,是行的通的。虽然说引入了代理服务,增加了一次重定向操作,不过由于这个授权请求并不是所有请求都需要,所以实际上也不会对用户体验产生多大的影响,但是从架构上来说,它的好处很明显,能够配合着应用的拆分逻辑,集成同一个公众号的登录及支付功能,不必为每个子应用都单独申请一个公众号来开发了(这种方式从业务上来说也不合理,一个公司哪需要运营那么多公众号)。

各种编程语言配置代理IP(python,php,java,nodejs,ruby...)

       代理IP对于爬虫采集来说至关重要,它能够帮助我们绕过各种限制,让数据采集更加高效便捷。以下提供几种常见编程语言配置代理IP的方法,以供参考。

       为了确保代码片段的实用性和可扩展性,本文将仅提供核心代码片段,具体的业务逻辑需要根据实际项目需求自行添加。

       在配置代理IP前,请确保你已经准备好相应的代理资源。你可以选择使用如kuaidaili.com等代理服务提供商,或自行构建代理服务器。

       以下是部分编程语言配置代理IP的示例代码:

       PHP配置代理IP:

       php

       $proxy = '");

       ',

        port: ,

        path: '/path/to/resource',

        method: 'GET',

        headers: {

        'Proxy-Authorization': `Basic ${ Buffer.from(`${ username}:${ password}`).toString('base')}`,

        'User-Agent': 'nodejs-client'

        }

       };

       const req = ')

       proxy_uri = URI('")

        if err != nil {

        log.Fatal(err)

        }

        defer resp.Body.Close()

       }

yxcms登入后台

       搭建yxcms网站

       首先,下载yxcms源代码,链接:pan.baidu.com/s/1s3xM-6...提取码:。将yxcms文件夹放置于phpstudy的WWW目录下。接着,启动phpstudy,创建网站,使用域名yxcms便于记忆,端口选择或其他,根目录指向浏览,选择yxcms文件夹,选择PHP版本为5,点击确认。

       若需了解搭建phpstudy的详细教程,可参考:blog.csdn.net/m0_...。

       利用burp登入后台

       完成网站创建后,访问yxcms.com,安装yxcms并注意数据库用户名和密码,通常为root。安装后访问前台或后台。前台页面如下,后台页面如图。访问后台地址为index.php?r=admin/index/login。

       启动burp,确保浏览器代理已开启,使用burp抓包。若无代理,可使用burp内置浏览器。打开Intercept并开启,选择Proxy下的第三个选项,点击Intercept is on。在内置浏览器访问网站,输入用户、密码和验证码,抓取数据包,右键选择Send to Intruder。

       使用爆破攻击,清除数据,添加用户、密码部分至Intruder,设置Attack type为Cluster bomb。加载爆破字典,启动攻击。结果显示,Length不同的即是正确的用户和密码。成功爆破后,关闭bp拦截,使用正确用户和密码登录后台。

       上传木马与远程控制

       选择管理模板文件,新建模板。文件命名随意,内容上传木马,使其可直接控制后台。木马路径为yxcms.com\protected/apps/default/view/default/1.php,可直接访问。

       至此,yxcms网站搭建完成,可进行MySQL执行、ServU提权、反弹连接、远程下载等操作。此步骤适用于学习,实践时需注意安全。