Rust 开发中的数据验证与类型驱动开发实践
在 Rust 开发中,数据验证是确保程序健壮性和安全性的重要环节。本文将深入探讨如何在 Rust 项目中进行有效的数据验证,以及如何利用类型驱动开发来避免潜在的错误。
1. 数据验证规则
在处理用户输入时,我们需要对数据进行验证,以确保其符合我们的要求。具体规则如下:
- 最大长度限制 :对于用户姓名,我们设定最大长度为 256 个字符。如果用户输入的姓名超过这个长度,我们会礼貌地请求他们输入一个昵称。
- 特殊字符过滤 :我们会拒绝包含 /()"<>\{} 等特殊字符的姓名。这些字符在 URL、SQL 查询和 HTML 片段中较为常见,但在姓名中并不常见。禁止这些字符可以提高 SQL 注入和网络钓鱼攻击的难度。
2. 初步实现
我们首先来看一下当前的请求处理程序:
//! src/routes/subscriptions.rs
use actix_web::{web, HttpResponse};
use chrono::Utc;
use sqlx::PgPool;
use uuid::Uuid;
#[derive(serde::Deserialize)]
pub struct FormData {
email: String,
name: String,
}
#[tracing::instrument(
name = "Adding a new subscriber",
超级会员免费看
订阅专栏 解锁全文
1559

被折叠的 条评论
为什么被折叠?



