我想做一个新闻门户网站(Php)与最小的mysql力量。:创建cron,从mysql获取数据并写入php文件。(我不知道这是正确的方式),但我可以使用xml而不是php文件?将mysql数据写入xml。这是安全的方式吗?最好的方法是什么?XML还是php文件?
alt text http://img541.imageshack.us/img541/4784/87392425.gif
提前感谢
发布于 2010-05-29 05:15:26
首先我要说的是,MySQL是非常快速和安全的。我推荐在请求时使用MySQL构建页面,大多数web应用程序都这样做,因为这是一种非常好的方法。为了节省资源,您可以使用Squid Reverse Proxy缓存输出,这在高流量站点上很常见。PHP的APC还将在不牺牲安全性的情况下减少资源消耗。Smarty's Caching system也是一种安全影响最小的好方法。
无论您选择哪种方法,都会有安全方面的考虑,但有些方法比其他方法更危险。例如,使用用户输入创建.php文件可能是使用php web应用程序所能做的最危险的事情。
$page='$title="'.$_GET['user_title'].'"';
file_put_contents("/var/www/page.php",$page);对此代码的攻击将如下所示:
http://localhost/page_creater.php?user_title='; eval($_GET[backdoor]); /*使用用户输入创建XML文件也很危险,因为它为Advanced LFI Attacks打开了大门。然而,相反的论点是,只要您的应用程序没有本地文件包含漏洞,那么您就不必担心。但这不是“深度防御”设计,因为你应该为失败做好准备。
可以实现像Squid的反向代理in php using ob_start()这样的东西,但是您仍然可以使用攻击者控制的数据创建文件,这就是危险。此外,不要包含非常愚蠢的() .html文件(请参阅高级LFI攻击...),更好的方法是:print(file_get_contents($file))。与使用.xml文件相比,我更喜欢使用.html文件,因为在将其输出给用户之前,不必对其进行处理。与MySQL相比,使用xml文件作为数据存储是对资源的浪费。
(免责声明:在Smarty、squid、php、linux、mysql和apache以及...中发现了漏洞。其他所有内容,甚至包括StackOverflow ;)
https://stackoverflow.com/questions/2927636
复制相似问题