函数或调用者是否应负责输入验证?

hau*_*ilt 7 php security user-input

我正在对一个相当大的php应用程序进行安全审计,并想知道我应该在哪里包含我的用户输入验证.

我应该验证数据,然后将干净的数据发送到后端函数,还是应该依靠每个函数来进行自己的验证?甚至两个?

这种事情有没有标准或最佳实践?

目前,该应用程序不一致,我想让事情更加一致.

MAN*_*UCK 8

两者都是更好的答案.数据验证应该在每个将处理数据的功能中进行,以避免希望驱动开发(HDD)的问题


Emi*_*röm 6

您绝对应该尽快从外部验证数据.根据体系结构,负责函数内的后端验证可以是第二步,但不依赖于后端验证,而是在数据进入应用程序时验证数据.

作为对先前验证的补充,在函数内部验证的专业人员是维护系统更容易(和更安全),因为(无比的)开发人员在您无法破坏应用程序之后.如果你有一个支持插件的应用程序,例如第三方插件,那么安全功能也是必须的.