近日翻阅了下《asp.net网络开发入门与实践》一书,才随意翻了几页,就发现了一些问题。
1.里面的例子所有参数都是不进行过滤就提交给数据库处理的,这样的例子如果读者学了去开发项目,那绝对是”见光死“(有兴趣的同学可以去查下"SQL注入“)(不过这也是现有开发书籍的通病了,找得到的书籍中95%都是不会考虑参数的安全问题的)
2. P175页,里面提到“使用密钥库需要提升asp.net用户的权限“,提特意用了图例教读者怎么把"aspnet"用户提升为“administrators",简直是荒谬至极!我自己对asp.net了解不多,但是使用加密方式加密密码的.net站点是见过的,从来没有见过说要把aspnet用户提升为administrators才可以正常工作的。最重要的是,这严重违反了安全的原则,要配置安全的站点,最重要的是站点的权限设置,要尽量把用户的权限最小化,(各种操作系统的安全补丁都有大量是针对“溢出提权”而发布的), 而这本书中提到的把aspnet提升为管理员,那简直是让用户自行提权。如果真遇到这样的站点,那将是“黑客”最高兴的事情了--所有“黑客”教程中的提权办法都不用了--因为webshell本身已经是最高权限的了。(这一项还放在“开发技巧与总结”中,真是不知道要害了多少读者)
另外还有个小问题,书中某个例子后说有时用localhost访问不行的,要用机器名地址。我晕,这算什么回事,localhost和机器名都最终都是被转化成IP来访问的,除非是站点的设置有问题或作者的hosts文件有问题,否则两者的功能是一样的,怎么会不行的?由此可见,开发者本身还是有必要通晓一些其它方面的知识。
感觉现有的书本出得太“泛滥”了,不少出书的人本身就没有什么开发经验,就出了洋洋洒洒5、6百字的书(翻了几本asp.net的书,感觉里面的例子都是差不多的,真不知道是谁抄谁的),这样的最终结果还是害了初学者。所以大家看教程类的书本时要小心了。
因为只是随意翻了一些地方,其它地方还有没有问题就不是很清楚了。