易截截图软件、单文件、免安装、纯绿色、仅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
-


相关文档:

linux下安装php_mbstring扩展


phpMyAdmin提示没字符串编码和字符串处理库php_mbstring
SSH连接上后:yum install php-mbstring安装扩展
vi usr/local/lxlabs/ext/php/etc/php.ini编辑PHP.ini文件
去掉一行的注释:extension=mbstring.so
(有些可以不用设置这两行,php.ini中不存在;extension=mbstring.so

只要mbString扩展安装到了extension ......

php自用数据缓存类

刚换了一个工作,现在没什么事做,写了一个数据缓存的类。
可以缓存数组,字符,对象等,执行效率还没有测试,先放出来吧。
实例如下:
 * @example
 * require 'MyCache.class.php';
 * $mc = new MyCache("./test/cache");
 * $a = "hello world111";
 * $mc->set("ss", $a);
  ......

PHP 的错误报告

PHP 的错误报告
display_errors = Off
error_reporting = E_ALL
display_errors  是否显示错误。默认值是 Off。要让开发过程更加轻松,请把这个值设为 On:
display_errors = On
error_reporting 变量的默认值是 E_ALL。这个设置会显示从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点太细 ......

利用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号