Web applications 您如何实现有效且安全的功能?

Web applications 您如何实现有效且安全的功能?,web-applications,security,Web Applications,Security,我遇到了这样的问题:“我在安全方面做得太多了吗?”或者“我做得太少了吗?” 首先,我需要实现一个“发布消息”功能和一个“编辑消息”功能 下面是一个基本的表结构: id、用户id、类别id、消息标题、消息内容 这两种方法似乎很容易实现,但当我想到安全或黑客时,我开始担心。。。我担心的是: 关于发布消息: 用户是否会在数据库中提交超长消息 用户会进行SQL注入来破坏我的数据库吗 用户是否会保留邮件,并使我的数据库已满 用户是否会提交无效的类别id?(例如,已删除或尚未出现,或者该用户无法使用该类别)

我遇到了这样的问题:“我在安全方面做得太多了吗?”或者“我做得太少了吗?”

首先,我需要实现一个“发布消息”功能和一个“编辑消息”功能

下面是一个基本的表结构:

id、用户id、类别id、消息标题、消息内容

这两种方法似乎很容易实现,但当我想到安全或黑客时,我开始担心。。。我担心的是:

关于发布消息:

  • 用户是否会在数据库中提交超长消息
  • 用户会进行SQL注入来破坏我的数据库吗
  • 用户是否会保留邮件,并使我的数据库已满
  • 用户是否会提交无效的
    类别id
    ?(例如,已删除或尚未出现,或者该用户无法使用该类别)
  • 关于编辑邮件:

  • 用户是否会编辑不属于他/她的消息?(破解
    id
  • 用户是否会编辑id无效的
    消息?(例如,已删除或尚未显示)
  • 用户会在我的数据库中编辑SQL注入语句吗
  • 用户是否会编辑数据库中的长消息
  • 用户是否会编辑无效的
    类别id
    ?(例如,已删除或尚未出现,或者该用户无法使用该类别)
  • 有几个问题我很关心。我可以将其分为两种类型:

  • 技术安全问题。(例如,SQL注入,消息长度)
  • 方案逻辑问题。(例如,
    category\u id
    不允许该用户使用)

  • 我认为技术安全问题可以通过互联网上的一些标准库来实现,但程序逻辑问题让我发疯。我应该执行所有检查吗?例如,在执行相关SQL命令之前,检查
    category\u id
    是否针对该
    用户,并检查
    id
    是否存在等。它可以实现,但非常耗时。或者我只需要假设每个输入都是有效的,并且用户不会在系统中破解奇怪的
    category\u id
    ?请告知

    正如Paul C所说,你永远不应该信任你的用户。或者,更确切地说,您应该相信您的用户会在数据输入中犯下所有可能的错误,以及一些恶意入侵数据库的尝试

    编写输入验证所需的时间将比修复数据库中的问题所需的时间少得多,即使这样,您仍然必须添加输入验证以防止类似问题。从一开始就验证一切要容易得多