Python';s可访问的类变量、敏感数据和恶意编码器(黑帽黑客)

Python';s可访问的类变量、敏感数据和恶意编码器(黑帽黑客),python,class,security,data-science,private,Python,Class,Security,Data Science,Private,我试图使一个变量对我正在做的项目不可访问,我在上遇到了一个SO帖子。对我来说,它提出了一些有趣的问题,为了尝试回答这个问题,我将用Q1、Q2等标记。我环顾了四周,但我没有找到我要问的问题的答案,特别是那些关于敏感数据的问题 我在中发现了一些有用的东西,但似乎普遍的共识是,如果你看到一个变量前面有一个。,表现得像个成年人,并意识到你不应该弄乱它。对于前面有的变量,也提出了同样的想法。在那里,我得到了一个普遍的想法,你相信人们不会使用那些描述和(更详细的)技巧。我还发现了一些很好的信息 当您谈论好的

我试图使一个变量对我正在做的项目不可访问,我在上遇到了一个SO帖子。对我来说,它提出了一些有趣的问题,为了尝试回答这个问题,我将用Q1、Q2等标记。我环顾了四周,但我没有找到我要问的问题的答案,特别是那些关于敏感数据的问题

我在中发现了一些有用的东西,但似乎普遍的共识是,如果你看到一个变量前面有一个
,表现得像个成年人,并意识到你不应该弄乱它。对于前面有
的变量,也提出了同样的想法。在那里,我得到了一个普遍的想法,你相信人们不会使用那些描述和(更详细的)技巧。我还发现了一些很好的信息

当您谈论好的编码实践时,这些都是非常好的建议

我在我分享的帖子的评论中发表了一些想法。我的主要问题作为评论

我感到惊讶的是,对于那些想引入恶意代码的人,还没有更多的讨论。这是一个真正的问题:在Python中是否没有办法阻止黑帽黑客访问您的变量和方法并插入可能拒绝服务、泄露个人(或专有公司)信息的代码/数据Q1如果Python不允许这种类型的安全性,它是否应该用于敏感数据Q2

我是否完全遗漏了什么:恶意代码编写者是否可以访问变量和方法来插入可能拒绝服务或泄露敏感数据的代码/数据第3季度

我想我可能误解了一个概念,遗漏了一些东西,把一个问题放到了一个不属于它的地方,或者完全不知道什么是计算机安全。然而,我想了解这里发生了什么。如果我完全偏离了目标,我想要一个能告诉我这一点的答案,但我也想知道我是如何完全偏离目标的,以及如何重新开始

我在这里问的问题的另一部分来自我对这些帖子/答案的另一个评论@斯洛特(有点意译)

。。。我发现
private
protected
是非常非常重要的设计概念。但实际上,在成千上万行Java和Python中,我从未实际使用过
private
protected
。。。我的问题是“保护[或保密]谁?”

为了尝试找出我的担忧是否值得关注,我在那篇帖子上写道。在这里,经过编辑

问:“受到谁的保护?”答:“受到恶意黑帽黑客的保护,他们想访问变量和函数,以便能够拒绝服务,访问敏感信息,…”似乎
A.\u no_touch=5
方法会让恶意的程序员嘲笑我的“请不要碰这个”。我的
A.\uu get\SSN(self)
似乎只是一厢情愿地希望B.H.(黑帽子)不知道
x=A();x、 _A__get_SSN()
trick()

我可能把问题放错地方了,如果是的话,我希望有人告诉我我把问题放错地方了,但也要解释一下是否有基于类的方法可以确保安全Q4在PythonQ5中,还有哪些用于处理敏感数据的非类和可变解决方案

下面的一些代码说明了为什么我认为这些问题的答案是怀疑Python是否应该用于敏感数据Q2的原因。它不是完整的代码(为什么我要把这些私有值和方法放下来而不在任何地方使用它们呢?),但我希望它能显示出我想问的东西的类型。我在Python交互控制台上键入并运行了所有这些

##在解释器中键入此命令以定义类。
类别A():
定义初始化(自):
self.name=“好人。”
self.just_a_4=4
self.my_编号=4
self.\u这需要\u成为\u pi=3.14
self.\uu SSN=“我希望你不要破解这个…”
自助银行账户数量=123
def get_info():
打印(“姓名、SSN、银行账户”)
def更改我的号码(self,另一个号码):
self.my_number=另一个_num
定义获取更多信息(自我):
打印(“地址,健康问题”)
def发送私人信息(自我):
打印(self.name、self.\u SSN、self.\u bank\u acpt\u num)
给(赛尔夫,ssn)20美元:
self.u SSN+=“有20美元”
def说出我的名字(自我):
打印(“我的名字”)
def说出我的真实姓名(自我):
打印(self.name)
定义我的银行(自我):
打印(str(自身、银行、账户)
>>我的a=a()
>>>我的妈妈。这个需要成为一个圆周率的人
3.14
>>>我的a._这需要_成为_pi=4#我只是忽略了以``规则'开头的内容。
>>>我的妈妈。这个需要成为一个圆周率的人
4.
##下一种方法实际上可能是建立某种安全连接,
##我猜,这可以发送私人数据。我只是把它打印在这里。
>>>我的a.发送私人信息()
好人。我希望你不要破解这个。。。123
##易于访问和更改“私有”变量
>>>我的妈妈
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:'对象没有属性'\u SSN'
>>>我的遗嘱__
{'name':'好人','just_a_4':4,'my_number':4,'u this_需要成为'u pi':4,
“我希望你不要破解这个…”,“银行账户”:123}
>>>我的妈妈
“我希望你不要破解这个…”
#(可能)可能更危险
>>>def给我你的钱(自己,银行号码):
print(“我不知道如何注入代码,但我可以”)
打印(“访问您的银行账号:”)
打印(我的账户)
打印(“并使用我的银行账号:”)
打印(银行编号)
>>>把你的钱给我(我的a,345)
我不知道如何注入代码,但我可以
访问您的银行账号:
123
并使用我的帐号:
345
在这一点上,我重新进入了d班