哪个功能,受保护的或私有的更安全? [复制]

Posted

技术标签:

【中文标题】哪个功能,受保护的或私有的更安全? [复制]【英文标题】:Which function, protected or private is more secure? [duplicate] 【发布时间】:2018-10-20 01:15:55 【问题描述】:

我不知道这是不是一个好问题。 但是哪个功能,受保护的或私有的更安全? 安全,我的意思是,访问外部功能。 安全,我的意思是当我破解代码来获取变量时,使用哪个会更难??

【问题讨论】:

请定义您所说的“安全”是什么意思? 安全,我的意思是,访问外部函数 您的意思是“外部函数”是否可以访问受保护或私有方法?或者是什么意思? 我认为你最好看看变量范围在你选择的语言中是如何工作的。 “当我破解代码变量时” 那现在意味着什么? 【参考方案1】:

这在很大程度上取决于上下文。安全到什么程度?外部访问?可见性修饰符不会阻止数据泄漏到您的应用程序之外,您应该了解生产环境中的所有代码。

我会更专注于:

缓冲区溢出 SQL 注入(例如,使用 mysqli 准备好的语句而不是 mysql) 源代码可用性 跨站请求伪造 会话劫持。

【讨论】:

【参考方案2】:

Private : 只能从类内部访问(其他方法)。 受保护:只有继承类才可以访问。 Public : 可以从任何对象访问

【讨论】:

“只有继承类才能访问。”当然还有其他自己的类方法。 据我所知,friend 对象也可以访问私有方法/变量 @AliYılmaz 当然可以,但是 php 不支持类似朋友的声明【参考方案3】:

实际上,这些与您所说的安全性无关。这取决于您尝试开发的应用程序类型。如果以正确的方式使用这三种类型,它们都是安全的。

如果你要在程序的任何地方使用这些函数,你应该使用 public。如果您只想在扩展该类的类需要它们时使用它们,则必须使用受保护的。如果你只想在那个类中使用它,你应该使用 private。

【讨论】:

以上是关于哪个功能,受保护的或私有的更安全? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Typescript - 作为私有或受保护的对象

受保护和私有有啥区别? [复制]

c#中受保护和私有保护有啥区别? [复制]

为啥 Java 反射 API 允许我们访问私有和受保护的字段和方法?这不会破坏访问修饰符的目的吗? [复制]

php 安全保护与私有

受保护的与私有的析构函数