采用syslog的性能和安全问题
来源:互联摘选 日期:2004年03月13日 20:48:03
Syslog 是标准 Unix的 跟踪记录机制 。它是很灵活,并且可以让你做事情比如把不同的程序跟踪写到不同的件或得到关键事件的即时通知。然而, 许多程序员并不想用它, 甚至避免用它,这可能是因为他们担心它会增加太多的系统开销。 其实我对采用syslog(系统跟踪记录)和采用stdio(标准IO记录)曾做过一些简单的基准测试。在相同条件下对一个极其忙的网页服务器进行分析后, 我发现用syslog仅仅会慢一点点。在更多情况下是根本测不出差别。
另外关于采用syslog的担心外部的攻击。它写得有点粗糙, 用一固定长度内部的缓冲区且没检查溢出。这使它在缓冲区溢出攻击下很脆弱。例如Morris莫利斯蠕虫使用该bug对fingerd进行攻击。其实, 对付这种攻击的方法是容易的只要把在全部printf类函数的定义串最大的长度就可以.这样,此类攻击变毫无意义。例如,用printf("%.80s",str);代替printf("%s",str).这样,为何不用syslog呢,它又灵活又方便。我就用它。