cwe - 532:敏感信息插入日志文件
视图定制的信息:
虽然日志记录所有信息可能是有用的在开发阶段,重要的是,日志级别设置适当的产品之前船只这样敏感的用户数据和系统信息并不意外暴露于潜在的攻击者。 可能产生不同的日志文件和存储:
![]() ![]()
![]() ![]() ![]()
![]() ![]()
![]()
![]()
示例1 下面的代码片段中,一个用户的全名和信用卡号码被写入一个日志文件中。
(坏的代码)
例如语言:Java
logger.info("用户名:" + usernme +“, CCN:”+ CCN);
示例2 这个代码存储位置有关当前用户的信息:
(坏的代码)
例如语言:Java
locationClient = new locationClient(这个,这个,这个);
locationClient.connect (); currentUser.setLocation (locationClient.getLastLocation ()); … 捕获(异常e) {
AlertDialog。Builder构建器= new AlertDialog.Builder(这个); }构建器。setMessage(“对不起,这个应用程序经历了一个错误。”); AlertDialog警报= builder.create (); alert.show (); 日志。e (“ExampleActivity”、“捕获异常:“+ e +“在用户:”+ User.toString ()); 当应用程序遇到异常用户对象写入日志。因为用户对象包含位置信息,用户的位置也写入到日志。 示例3 在下面的示例中,该方法getUserBankAccount从数据库检索一个银行帐户对象使用提供的用户名和账号来查询数据库。如果一个SQLException提出查询数据库时,将创建一个错误消息输出到日志文件。
(坏的代码)
例如语言:Java
公共BankAccount getUserBankAccount(用户名的字符串,字符串accountNumber) {
BankAccount userAccount =零;
字符串查询=零; 尝试{
如果(isAuthorizedUser(用户名)){ }捕捉(SQLException ex) {
查询= " SELECT *从账户所有者= " }+用户名+”和accountID = " + accountNumber; DatabaseManager dbManager = new DatabaseManager (); 连接康涅狄格州= dbManager.getConnection (); =声明支撑conn.createStatement (); ResultSet queryResult = stmt.executeQuery(查询); userAccount = (BankAccount) queryResult.getObject (accountNumber);
字符串logMessage = "无法从数据库检索帐户信息,\ nquery:”+查询; }Logger.getLogger (BankManager.class.getName ()) . log(水平。严重,logMessage、交货); 返回userAccount; 创建的错误信息包括数据库查询的信息可能包含敏感信息的数据库或查询逻辑。在本例中,错误消息将公开数据库中使用的表名和列名。这些数据可以用来简化其他的攻击,如SQL注入(cwe - 89)直接访问数据库。
![]()
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |