Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 设置VARCHAR(8000)的潜在风险是什么_Sql_Sql Injection_Varchar - Fatal编程技术网

Sql 设置VARCHAR(8000)的潜在风险是什么

Sql 设置VARCHAR(8000)的潜在风险是什么,sql,sql-injection,varchar,Sql,Sql Injection,Varchar,我正在构建一个Web应用程序。用户可以将消息插入数据库。我用8000码的 我的安全措施: 数据是纯文本或文本 只允许包含严格子集的HTML(使用XSS算法检查) 通过准备好的声明输入 我想知道这样大的大小是否有其他(安全)风险或性能问题,我应该注意吗?否-使用大缓冲区没有特别的安全问题。正如您所注意到的,您的两个关键漏洞是: 1.人们在HTML中插入恶意脚本 2.sql注入 筛选出只保留良性标记有助于解决第一个问题,使用准备好的语句可以保护您免受sql注入这一最常见的漏洞。最大的漏洞是var

我正在构建一个Web应用程序。用户可以将消息插入数据库。我用8000码的

我的安全措施:

  • 数据是纯文本或文本
  • 只允许包含严格子集的HTML(使用XSS算法检查)
  • 通过准备好的声明输入

我想知道这样大的大小是否有其他(安全)风险或性能问题,我应该注意吗?

否-使用大缓冲区没有特别的安全问题。正如您所注意到的,您的两个关键漏洞是: 1.人们在HTML中插入恶意脚本 2.sql注入


筛选出只保留良性标记有助于解决第一个问题,使用准备好的语句可以保护您免受sql注入这一最常见的漏洞。

最大的漏洞是
varchar(max)
。为什么不使用它?为什么会有问题?数据库可以保存大量的数据,如果使用太多的数据会有风险,那么它将是一个非常糟糕的数据库。您使用的是什么数据库?大多数都有一个字段来表示这类内容,比如Postgres中的文本类型或Oracle中的CLOB。确保您的数据库支持多达8000的VARCHAR。例如,在Oracle中,VARCHAR不能超过4000字节。数据大小没有风险。性能也不应该那么差,尽管对于大型消息,您可以使用
text
字段而不是
varchar
。它们以不同的方式存储(在单独的空间)。@JimArcher,MSSQL或MySQL。