团队作业(五)冲刺总结5
团队作业(五)冲刺总结5
今日进展
- 数据库连接:
-
数据库配置:首先需要配置数据库连接信息,包括数据库类型(如MySQL、PostgreSQL、Oracle等)、主机地址、端口号、数据库名称、用户名和密码等。
-
数据库连接池管理:为了提高性能和效率,通常会使用数据库连接池技术,管理和维护一组可用的数据库连接,以便在需要时从池中获取连接,而不是频繁地创建和销毁连接。
-
数据访问对象(DAO)设计:在应用程序中设计和实现数据访问对象,用于封装和管理与数据库的交互操作,包括数据的读取、写入、更新和删除等。
-
数据库连接的异常处理:在建立数据库连接的过程中,需要处理各种可能出现的异常情况,包括网络连接问题、数据库服务不可用等,保证连接的可靠性和稳定性。
-
数据库连接的安全性:确保数据库连接的安全性,包括密码的加密存储、避免SQL注入等安全措施。
- 查询资料:数据库安全是一个非常重要的话题,Django 提供了一些内置功能和最佳实践来帮助开发者防御常见的安全漏洞,比如 SQL 注入和访问劫持。此外,使用 SSL/HTTPS、HSTS、Host 头部验证和 Referrer 策略也是保障应用程序安全的关键步骤。
-
Django的querysets在构建参数化查询时会自动进行参数转义,从而防止SQL注入攻击。开发者也要避免直接书写原始查询或执行自定义SQL,以免出现安全问题。
-
Django包含了访问劫持保护,通过X-Frame-Options中间件来阻止网页被渲染在frame内部,同时也可以在视图级别禁用保护或配置发送的头部值。
-
使用HTTPS部署网页是最佳的安全实践,可以防止恶意用户嗅探验证资格或篡改数据。同时需要设置SECURE_PROXY_SSL_HEADER、SECURE_SSL_REDIRECT、使用'secure' cookies和启用HSTS。
-
Django通过ALLOWED_HOSTS验证Host头部,需要确保直接从request.META获取Host头部以绕过安全机制。
-
Referrer策略也是保护网站安全的重要部分,可以通过设置适当的策略来防止不明来源的请求。
燃尽图
问题与解决
-
问题一:连接超时错误:在建立数据库连接时,数据库服务端不可用导致连接尝试超时。
-
问题一解决方案:确保网络连接稳定,尝试重新连接数据库,检查数据库服务端是否可用。
-
问题二:连接拒绝错误
-
问题二解决方案:检查数据库连接数是否达到最大限制,尝试增加数据库连接数的配置。 ~ mysql -uroot -proot -S /tmp/mysql.sock -- 用户名 + 密码 + Socket文件路径地址(可不带默认)
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
通过tcp/ip地址连接mysql;它将先检查权限视图表,检测请求方的ip是否允许被连接
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
明日工作安排
学号姓名 | 工作安排 |
---|---|
郑润芃 | 优化前端界面设计 |
丁文博 | 查阅数据库相关资料、安全密码算法 |
史雨洁 | 优化界面代码 |
郭佳昊 | 连接数据库 |
高进涛 | 连接数据库、实现访问控制 |
成员贡献量
学号姓名 | 贡献量 |
---|---|
郑润芃 | 5 |
丁文博 | 6 |
史雨洁 | 5 |
郭佳昊 | 6 |
高进涛 | 6 |