正式开始写技术性blog, 主要目的是为了记下工作中的一些心得,还有便于以后的总结和改进。第一次写技术方面的东西,迟迟不能下"指",万事开头难啊...
ACM (access control management) : 控制多个application的访问权限。
这篇文章介绍的主要内容是: 为了避免application直接访问数据库里面的user data, ACM提供一个url (http://xxx.php)作为一个访问database的接口。这样我们就对application隐藏了数据库的信息以及内容。具体方法如下:
xxx.php 从url里面得到用户名和密码(http://xxx.php?username=xxx&password=xxx),然后访问数据库进行核对,如果正确echo一个'OK', 否则就'Err'。在开头写上 header("Content-Type: text/plain"); 这样文件就成了文本格式(/n用起来比<br>舒服多了)。
在Application里面使用:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
在这里file() function会返回这个页面的output到一个array, 每一行是一个element。使用trim()是因为每一个element后面都跟了一个new line charactor, 我们要把它去掉。在应用过程中我们只要让xxx.php多输出几个变量(例如privilege)就可以控制用户的权限了。
注:可以考虑让xxx.php输出一个xml格式的文本文件,这样便于applications 从中读出所需的信息。
再注:其实这也是一种实现在不同页面之间传输,运算变量的非常简便的方法。
疑问:这个url可能会遭到恶意query,或者是针对某个已知的username进行穷举来得到password.
最后感谢我的supervisor向我介绍了这种方法。(姓名保密,嘎嘎)