开发安全之:System Information Leak: External

Overview

 在调用 error_reporting() 过程中,程序可能会显示系统数据或调试信息。由 error_reporting() 揭示的信息有助于攻击者制定攻击计划。

Details

当系统数据或调试信息通过套接字或网络连接使程序流向远程机器时,就会发生外部信息泄露。

示例 1:以下代码会将一个异常写入 HTTP 响应:

<?php 
 echo "Server error! Printing the backtrace"; 
debug_print_backtrace(); 
 ?>

依据这一系统配置,该信息可转储到控制台,写入日志文件,或者显示给远程用户。例如,凭借脚本机制,可以轻松将输出信息从“标准错误”或“标准输出”重定向至文件或其他程序。或者,运行程序的系统可能具有将日志发送至远程设备的远程日志记录系统,例如“syslog”服务器。在开发过程中,您无法知道此信息最终可能显示的位置。

在某些情况下,该错误消息会告诉攻击者该系统易遭受的确切攻击类型。例如,数据库错误消息可以揭示应用程序容易受到 SQL Injection 攻击。其他错误消息可以揭示有关该系统的更多间接线索。在Example 1 中,泄露的信息可能会暗示有关操作系统类型、系统上安装了哪些应用程序以及管理员在配置程序时采取了哪些保护措施的信息。

Recommendations

编写错误消息时,始终要牢记安全性。在编码的过程中,尽量避免使用繁复的消息,提倡使用简短的错误消息。限制生成与存储繁复的输出数据可帮助管理员和程序员诊断问题。调试踪迹有时可能出现在不明显的位置(例如,嵌入在错误页 HTML 的注释中)。 即便是并未揭示栈踪迹或数据库转储的简短错误消息,也有可能帮助攻击者发起攻击。例如,"Access Denied"(拒绝访问)消息可以揭示系统中存在一个文件或用户。

相关推荐

  1. 开发安全:SQL Injection

    2024-01-22 02:32:02       25 阅读
  2. 开发安全:Path Manipulation

    2024-01-22 02:32:02       41 阅读
  3. 开发安全:XML Injection

    2024-01-22 02:32:02       31 阅读
  4. 开发安全:Header Manipulation

    2024-01-22 02:32:02       29 阅读
  5. 开发安全:split()安全漏洞

    2024-01-22 02:32:02       35 阅读
  6. 开发安全:Access Control: Database

    2024-01-22 02:32:02       37 阅读
  7. 开发安全:System Information Leak: External

    2024-01-22 02:32:02       33 阅读
  8. 开发安全Dangerous File Inclusion

    2024-01-22 02:32:02       27 阅读
  9. 开发安全:Server-Side Request Forgery

    2024-01-22 02:32:02       30 阅读
  10. 开发安全:Cross-Site Scripting: DOM

    2024-01-22 02:32:02       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-22 02:32:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-22 02:32:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-22 02:32:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-22 02:32:02       20 阅读

热门阅读

  1. 2024作息打卡和事件梳理

    2024-01-22 02:32:02       36 阅读
  2. iView 中DatePicker日期选择器 v-model不生效的情况

    2024-01-22 02:32:02       29 阅读
  3. 【鸿蒙4.0】harmonyos Day 04

    2024-01-22 02:32:02       27 阅读
  4. Spring MVC常用注解有哪些?都有什么用?

    2024-01-22 02:32:02       30 阅读
  5. Android学习(五):常用控件

    2024-01-22 02:32:02       38 阅读
  6. 网络安全信息收集工具

    2024-01-22 02:32:02       33 阅读
  7. c++ 命名空间 匿名命名空间

    2024-01-22 02:32:02       39 阅读
  8. 第七章 迭代器与生成器

    2024-01-22 02:32:02       28 阅读