易截截图软件、单文件、免安装、纯绿色、仅160KB

php写的squid验证辅助器


2008-11-08 23:17
公司的代理服务器用的是squid,基于IP地址和MAC地址进行权限验证允许部分用户访问Internet。无奈列位高手们早已通晓盗用IP、MAC的方法来绕过squid的限制。近来考虑改为帐号认证。
由于同时在维护一个邮件服务器(qmail + vpopmail + mysql),邮件帐号用mysql管理,内网用户人手一邮箱。为了便于用户记忆,想直接使用邮件帐号和密码作为squid的帐号密码。
程序嘛,比较靠谱的是
mysql_auth
,无奈对c一窍不通,只能借鉴一下它的思路......干脆自己写一个吧。
其他已知资料:
《Squid中文权威指南》
,第12章有一个perl的例子以及以下文字:
在squid和基本验证器之间的接口非常简单。squid发送用户名和密码到验证器进程,他们以空格分开并以新行结束。验证器在其他stdin里读取用户名和密码。在检查信用项后,验证器将OK或ERR写入stdout。
任何“不安全的URL”字符会参照RFC1738规则进行编码。这样,名字“jack+jill”变成了"jack%2bjill"。squid接受包含
空格的用户名和密码。例如“a password”变成了“a%20password”。在解码用户名和密码后,验证器程序能处理空格和其他的特殊字符。
要点总结:从stdin读取用户名和密码,用户名和密码以空格分隔,可能涉及解码。vpopmail里用户帐号和密码分别
是pw_name和pw_passwd列,建一个表squid,只有一列pw_name,把有权用户的用户名添加到表squid里,用pw_name列关
联两个表查询获得pw_passwd,和用户的输入做比较,一致即验证成功。
PHP代码如下:
#
!
/
usr/
bin/
php

<
?
php
ini_set
(
"display_errors"
,
false
)
;

function
valid(
$
u
,
$
p
,
$
sql_link
)
{
$
result
=
false
;
$
res
=
mysql_query
(
"select pw_passwd from squid a, vpopmail b where a.pw_name='$u' and a.pw_name=b.pw_name"
,
$
sql_link
)
;
$
rows
=
mysql_num_rows
(
$
res
)
;
if
(
1 =
=
$
rows
)
{
      $
data
=
mysql_fetch_object
(
$
res
)
;
      $
passwd
=
$
data
-


相关文档:

PHP获取网页内容方法总结

抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就不做介绍了,有兴趣的,以下就是几种常用的用php抓取网页中的内容的方法。
1.file_get_contents
PHP代码
复制代码 代码如下:
<?php
$url = "http://www.jb51.net";
$contents = file_get_contents($url);
// ......

百度mp3加密算法破解PHP版

<?php
/**
* @author qqzer.com
* @copyright 2010
*/
function baidu_decode($url,$sertim='',$k=array())
{
$E=strlen($url);
$C="";
$I=array();
$F=array();
$J=$sertim % 26;
$J=$J?$J:1;
foreach((array)$k as $str){
list($O,$L,$M) = explode(',',$str);
for($N=$O;$N<=$L;$N++){
......

利用GoogleApp托管自己的PHP代码(Eclipse开发环境)

Google 在一年前发布了Google App Engine (GAE) 。这是一个免费的 App Engine 主机,可以让你的每个Application(免费的最多有10个)有1GB的磁盘空间和43.6个CPU小时与10GB的上传和10GB的下载带宽,以及2000个电子邮件。如果你需要地更多,那就是付钱了。
GAE 最近发布了正式支持Java的通知。于是,互 ......

关于PHP VC9,VC6,Thread Safe,Non Thread Safe

一、如何选择 PHP5.3 的 VC9 版本和 VC6 版本
VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。
VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。
二、如何选择 PHP5.3 的 Thread Safe 和 Non Thread S ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号