将用户输入编码到数据库中是一种好习惯吗?

无限的

我想知道将用户输入编码到数据库是否是一种好习惯。

或者也可以不编码为用户输入。

目前,我的方法是在进入数据库时​​对其进行编码,并使用Html.DisplayFor进行显示。

伯里斯

否。您想要将输入保持其原始形式,直到需要它并知道输出类型是什么为止。目前可能是HTML,但是稍后如果您想将其更改为json,文本文件,xml等,编码可能会使它看起来与您想要的不同。

因此,首先您要确保安全地验证输入。知道每个输入的要求是什么,并验证它们是否具有正确的长度,范围,字符集等,这是一个好主意。您希望限制允许输入的有效字符的类型。输入类型的字符。(如果使用正则表达式来验证输入,请确保您不使用容易受到正则表达式拒绝服务攻击的正则表达式

在代码中四处移动数据时,请确保以正确的方式处理数据,以免将其转变为注入攻击

由于您在谈论数据库,因此最佳实践是使用参数化语句。在上面的链接中查看预防方法。

然后,当使用MVC输出时,如果您未使用RAW或MvcHtmlString函数/调用,则输出将被自动编码。使用自动编码时,您要确保使用的是AntiXss编码器,而不是默认编码器(白名单方式与黑名单方式)。关联

如果使用的是Raw或MvcHtmlString,则要确保完全信任值(对它们进行硬编码),或者使用AntiXss Encoder类手动对其进行编码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

对数据库中的数据进行分析是一种好习惯吗?

给每个CouchDB用户一个单独的数据库是否是一种好习惯?

将身份验证会话存储在数据库中是一种好习惯吗?

将图像保存在mysql / django的后端数据库中是一种好习惯吗?

Kafka:保持主题在数据库中的偏移量也是一种好习惯吗?

将数据库连接用作静态是一种好习惯吗?

将foreach用于数据库中的多次插入是否是一种好习惯?

共享具有多个无服务器功能的数据库是一种好习惯吗?

在数据库上保存base64字符串是一种好习惯吗?

卓:在同一个VPC中拥有webapp和数据库实例是一种好习惯吗?

将JAR文件(库)检入到版本控制工具中-这是一种好习惯吗?

在$ rootScope中存储变量是一种好习惯吗?

在ThreadPoolExecutor中设置allowCoreThreadTimeOut()是一种好习惯吗?

在dataProvider中定义期望是一种好习惯吗

在ReactJS中操作DOM是一种好习惯吗?

将行为嵌入到Entity Bean中是一种好习惯吗?

将大量数据存储在会话变量中是一种好习惯吗?

使用Flyway等数据库迁移工具来播种数据是否是一种好习惯?

像这样将数据存储在 nosql 数据库中是一个好习惯吗?

在node.js应用程序上打开数据库连接是否是一种好习惯?

在微服务上连接两个不同的数据库是否被视为一种好习惯?

将数据库连接对象添加到node.js中的process.env全局是否是一种好习惯?

在Spring中将事务服务注入到另一个事务服务中是一种好习惯吗?

使用form属性并将输入元素放在HTML中的form标记之外是一种好习惯吗?

通过设置取消引用的指针将对象从堆栈复制到堆中是一种好习惯吗?

在React中,将所有道具从父组件传递到子组件是一种好习惯吗?

用户在 Edittext 中每次更改时访问数据库是一种真正的做法吗?

将日志文件的只写权限授予某些用户是一种好习惯吗?

推送到存储库时忽略.classpath和.project(或.iml)是一种好习惯吗?