CWE-306:缺少关键功能的身份验证
查看自定义信息:
![]() ![]()
![]() ![]()
![]() ![]()
![]() ![]()
![]()
![]() 语言 班级:不是特定语言的(不确定的患病率) 技术 课程:云计算(不确定的患病率) 班级:ICS/OT(通常很普遍) ![]()
示例1 在以下Java示例中,方法createBankAccount用于创建用于银行管理应用程序的bankAccount对象。
(不良代码)
示例语言:爪哇
public bankaccount createBankAccount(字符串帐户名称,字符串帐户类型,
字符串帐户名,字符串帐户,双余额){
BankAccount帐户= new BankAccount();
account.setaccountnumber(帐户名); account.setAccountType(accountType); account.setaccountownername(accountName); Account.SetAccountownerssn(Accountssn); account.setbalance(余额); 退货帐户; 但是,没有任何身份验证机制来确保创建此银行帐户对象的用户有权创建新的银行帐户。应使用某些身份验证机制来验证用户是否有权创建银行帐户对象。 以下Java代码包括一个布尔变量和用于认证用户的方法。如果未对用户进行身份验证,则CreateBankAccount将不会创建银行帐户对象。
(好代码)
示例语言:爪哇
私人布尔iSuserauthentic = false;
//认证用户, //如果用户经过身份验证,则将变量设置为true //否则将变量设置为false public boolean authenticateuser(字符串用户名,字符串密码){
... }public bankaccount createNewbankaccount(字符串帐户名,字符串帐户类型, 字符串帐户名,字符串帐户,双余额){
bankAccount帐户= null;
if(Isuserauthentic){
帐户= new BankAccount(); }account.setaccountnumber(帐户名); account.setAccountType(accountType); account.setaccountownername(accountName); Account.SetAccountownerssn(Accountssn); account.setbalance(余额); 退货帐户; 示例2 2022年,OT:ICEFALL研究通过10种不同的运营技术(OT)供应商检查了产品。研究人员报告了56个漏洞,并说这些产品是“通过设计不安全的” [Ref-1283]。如果利用这些漏洞,这些漏洞通常会允许对手更改产品的运作方式,从拒绝服务到更改产品执行的代码。由于这些产品经常用于电力,电气,水和其他行业,因此甚至可能有安全感。 多个供应商没有在其OT产品中使用任何身份验证来实现关键功能。 示例3 2021年,由PeopleGis运营的网站存储了Amazon Web服务中的美国市政当局数据(AWS)简单存储服务(S3)。 虽然没有公开披露发现后如何保护数据,但可以考虑多个选项。
(好代码)
示例语言:其他
敏感信息本可以通过确保桶没有公开阅读访问权限来保护,例如,通过启用S3-Account级 - 公共访问 - 访问 - 访问 - 隔离规则来阻止公共访问权限。此外,可以使用适当的S3设置(例如,使用S3-Bucket-Server-Side-Side-Expryption-oppaped设置启用服务器端加密)来对数据进行加密。其他设置可用于进一步防止存储桶数据被泄漏。[[Ref-1297这是给予的
![]()
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |