为规范厦门大学网站开发,提高厦门大学网站开发水平,厦门大学信息与网络中心汇集了互联网和厦门大学部分网站开发者的经验和心得,推出本次最佳实践。 本网站开发最佳实践涉及服务器、网站开发、美术等,如需委托其他软件厂商开发,请将本文档发送给对方参考。 如果您有任何意见或建议网站开发文档,请发送电子邮件至 vhost#。 谢谢。
服务器
目前,信息网络中心提供托管服务器、托管虚拟机、托管虚拟主机、网站群等服务。 详情可查看。
服务器是否专用
服务器只能用于网页和数据库。 请不要为了方便传输文件而在服务器上安装qq、ftp等客户端软件。 服务器越简单,就越容易检测到黑客攻击。
您选择了正确的操作系统吗?
PHP+MySQL应该部署在Linux服务器上,尽量不要部署在服务器上。 Java建议部署在Linux服务器上。 服务器上部署了ASP和ASP.NET。 尽量不要对Linux服务器进行过多的定制,使用包管理器来安装软件。 更高级的用户可以使用Chef等配置管理工具来配置服务器。 安装的操作系统和数据库程序的来源应该是值得信赖的。 如果是从迅雷下载的ISO文件,需要检查官方的MD5值。
是否启用安全更新
服务器应保持最新并打开自动更新。 Linux 会自动安装并打开安全包。 建议安装2008 64位及以上版本。 应安装 LTS 64 位版本等 Linux。
是否启用动态磁盘扩展
服务器应开启动态磁盘功能,方便后期根据需求扩展磁盘大小。 2008及以上版本建议使用“动态磁盘”。 2003动态磁盘不如2008灵活。Linux建议使用LVM。 将 var 与根目录分开。
防火墙是否配置并启用
服务器应配置并启用防火墙。 如果您需要暂时关闭防火墙来排除故障,应在排除故障后重新打开防火墙。 防火墙规则基于需求。 一般网站只开放80端口。开放部分IP地址的3389和22端口。 禁用MySQL和SQL 的远程访问功能并关闭相应端口。
你做了备份吗?
如果您的数据没有备份网站开发文档,您可以假设该数据不存在。 应该至少有一个备份。 此备份不应位于同一台计算机上。 如果可能,备份应在异地进行。 可以考虑开源备份工具,,。 对于个人备份,请考虑槟榔。
是否使用域名代替IP部署
如果可能的话,服务器应该尽量使用域名访问而不是IP访问。 服务器应支持 IPV6。 Web应用程序只能在80端口上打开。如果一台服务器需要打开多个Web应用程序,则应采用基于域名的虚拟主机技术或打开虚拟目录的方式,而不是使用不同的端口。
是否支持IPv6
最新的操作系统默认支持IPV6,需要为服务器配置固定的IPV6地址。 程序代码还应该支持IPV6,并且保存访问者IP地址的字段应该能够容纳IPV6地址长度。 分析 IP 地址的代码应该能够支持 IPV6 格式。
服务器代码、数据等目录是否清晰?
Web应用程序应该只分为以下五个角色:
代码。 程序代码应在SVN、Git等源代码版本控制工具中进行管理。 备份服务器时,程序代码不需要备份。 重新部署时,只需重新下载程序代码即可。
第三方程序。 第三方程序包括操作系统光盘、数据库安装文件、应用框架代码、报表控件等安装文件。 这些是可下载的文件,保留是为了方便部署,不需要备份。
数据库。
数据或上传文件。 建议整个Web应用程序只有一个上传文件目录。 如果可能,请将其放置在Web应用程序之外,将其设置为不可执行,并使用防病毒工具对其进行杀毒。
日志。
目录结构方面,建议明确以上五个角色的目录结构。 桌面应该干净,像处女座一样。 可变数据库和数据或上传的文件应与操作系统分区分开,以防止操作系统崩溃后该分区不可读。 由于日志文件会不断增加,如果没有机制,应该将日志所在的分区独立分开,防止日志空间的扩大占据所有磁盘空间,导致整个系统无法运行。
是否使用强密码
是否使用监控工具?
数据库
是否采用独立用户和最小权限原则
By的另一个含义是最小特权原则。 最小权限原则也是安全设计的基本原则之一。 最小权限原则要求系统只授予主体必要的权限,而不能过度授权。 这可以有效减少系统、网络、应用程序和数据库出现错误的机会。 例如,在Linux系统中,良好的操作习惯是使用普通帐户登录,然后使用sudo命令执行需要root权限的操作。 这样可以将一些误操作带来的风险降到最低; 同时,普通帐户被盗用的后果与根帐户被盗用的后果完全不同。
Web数据库管理工具的权限是否受到限制?
数据库管理工具不应部署在Web部署服务器上。 例如,如果部署它们,应限制IP访问,应设置强密码,并消除不相关的帐户。
数据库和其他密码不是保存在源代码版本控制系统中吗?
数据库密码和电子邮件帐户密码不应保存在 Git 和 SVN 等版本控制系统中。 这些应该写入配置文件中。 配置文件不应放置在版本控制系统中。 只需放置模板配置文件即可进行开发和修改。
后台程序
是否使用框架来辅助开发?
应选择一个框架来减轻开发工作量。 框架的选择应该是选择社区活跃度最高、更新频繁、安全性好的框架。 PHP 可选,Zend。 可用,轻量级的web.py可用。 ASP.NET 使用 自己的 MVC 或 . 框架可以选择MVC框架,包括Ember.js、.js等,显示框架可以选择UI等。
调试模式是否关闭
生产环境应关闭调试信息。
是否对用户输入进行检查和过滤
代码不应信任任何用户输入。 URL 链接或表单数据可以被精心伪造。
有没有预防注入漏洞的办法?
有什么方法可以防止跨站脚本攻击(XSS)吗?
有什么方法可以防止跨站请求伪造(CSRF)吗?
有什么办法可以防止点击劫持吗?
密码是否加密保存
加密在保存之前应该进行加盐和消化。
密码、登录名等是否经过了暴力破解检查?
应限制输入错误密码的次数,限制单个IP对敏感资源的请求次数。
是否对程序文件所在目录设置只读和不可执行的权限设置
程序文件所在目录应设置为只读,更新代码后应重置权限。 上传目录设置为可写但不可执行,防止木马上传。
下载的文件是否受到完全保护
下载文件应放置在 web 目录之外。 下载首先判断权限,然后去系统读取要下载的文件,通过头部输出提供文件名-type和-;=。 确定页面上的权限后,不要直接重定向到实际的文件下载。 这个可能是直接下载的,也可能是被迅雷等工具记录了文件地址而被盗取。 ASP.NET 可以使用 . 以加快下载速度。
是否使用UTF8格式保存源代码和显示网页
是否考虑过国际化i18n
每个需要登录权限的页面是否都经过彻底检查?
应在程序开始时检查每个需要登录的页面的用户权限。 不应遗漏已提交的页面,因为用户可以直接构建数据提交。
网站前端
您是否参考过 Yahoo! 的 Best for Up Your Web Site?
页面设计
*请认真填写需求信息,我们会在24小时内与您取得联系。