免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3345 | 回复: 3
打印 上一主题 下一主题

[proxy] squid mysql认证中修改mysql_auth的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-19 10:16 |只看该作者 |倒序浏览
我用的mysql_auth-0.8,我修改了mysql的数据结构,data表结构如下:
CREATE TABLE data
        (user VARCHAR(16) NOT NULL PRIMARY KEY,
         password VARCHAR(64) BINARY NOT NULL,
         date TIMESTAMP(14) NOT NULL,
         expire VARCHAR(3) NOT NULL default 'no');
主要是加了创建用户的日期和是否过期的标志。应该如何修改mysql_auth.c使expire=‘yes’的时候不通过用户验证。
主要是增加一个查询expire的值,然后做判断,原理我是知道的,只是不怎么会C语言编程。

论坛徽章:
0
2 [报告]
发表于 2007-07-19 11:47 |只看该作者
sprintf (query, "SELECT * FROM %s WHERE %s LIKE '%s' AND %s LIKE %s ", \
                     parameters.var_table_name,\
                     parameters.var_user_column, user,\
                     parameters.var_password_column, password);

            mysql_query (&connect, query);
我把mysql_auth.c中以上查询语句改为:
sprintf (query, "SELECT * FROM %s WHERE %s LIKE '%s' AND %s LIKE %s AND expire = 'no'", \
                     parameters.var_table_name,\
                     parameters.var_user_column, user,\
                     parameters.var_password_column, password);

            mysql_query (&connect, query);
重新编译安装,把用户的expire改为yes,不起作用,用户仍然可以通过验证上网。
请大家帮我看看。

[ 本帖最后由 zhangshoug 于 2007-7-19 11:48 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
3 [报告]
发表于 2007-07-19 12:18 |只看该作者
是否不止这一处?

论坛徽章:
0
4 [报告]
发表于 2007-07-19 16:55 |只看该作者
sprintf (query, "SELECT * FROM %s WHERE %s LIKE '%s' AND %s LIKE %s ", \
                     parameters.var_table_name,\
                     parameters.var_user_column, user,\
                     parameters.var_password_column, password);

            mysql_query (&connect, query);
我把mysql_auth.c中以上查询语句照原样改为:
sprintf (query, "SELECT * FROM %s WHERE %s LIKE '%s' AND %s LIKE %s AND expire LIKE 'no'", \
                     parameters.var_table_name,\
                     parameters.var_user_column, user,\
                     parameters.var_password_column, password);

            mysql_query (&connect, query);
重新编译安装,把用户的expire改为yes,重启squid可以了。
但是如果用户的过期标志expire='no',用户通过验证了。这时再把用户的过期标志改为expire='yes',用户关闭浏览器,再打开浏览器,一样能够通过验证,需要重启一次squid才行,不知是什么原因?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP