proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« 用 mod_rewirte 解决 referer 攻击 | Main | mrtg 的加和等计算绘图 v.s. RRD 的加和等计算绘图 »

June 10, 2006

squid 的内容替换

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2006/06/10/001003.html
http://windtear.net/archives/2006/06/10/001003.html

squid 的内容替换

上个月遇到的问题,问题的提出比较搞笑
不过据说伟大的金盾也会替换两端的数据
确实还是有意思的
原理就是把用户的请求改了给服务器 再把服务器的返回改了给用户

修改 src/client_side.c

发回用户的时候:
/*
 * accepts chunk of a http message in buf, parses prefix, filters headers and
 * such, writes processed message to the client's socket
 */
static void
clientSendMoreData(void *data, char *buf, ssize_t size)

替换 buf 就行了(buf & mb.buf)
strstr 匹配上给出指针位置 然后strncpy覆盖相关内容
然后
comm_write(fd, buf, size, clientWriteBodyComplete, http, NULL);
comm_write_mbuf(fd, mb, clientWriteComplete, http);


/*
 *  parseHttpRequest()
 * 
 *  Returns 
 *   NULL on error or incomplete request 
 *    a clientHttpRequest structure on success 
 */
static clientHttpRequest *
parseHttpRequest(ConnStateData * conn, method_t * method_p, int *status,
    char **prefix_p, size_t * req_line_sz_p)

替换 conn->in.buf
完成用户请求的替换
本blog WWW

Posted by windtear at June 10, 2006 11:31 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.