Password Management: Password in Configuration File(明文存储密码) Abstract 在配置文件中存储明文密码,可能会危及系统安全. Explanation 在配置文件中存储明文密码会使所有能够访问该文件的人都能访问那些用密码保护的资源. 程序员有时候认为, 他们不可能阻止应用程序被那些能够访问配置文件的攻击者入侵,但是这种想法会导致攻击者发动攻击变得更加容易. 健全的 password management 方针从来不会允许以明文形式存储密码…
Password Management: Password in Configuration File(明文存储密码) https://www.cnblogs.com/mahongbiao/p/12496042.html Command Injection(命令注入) https://www.cnblogs.com/mahongbiao/p/12494308.html Unreleased Resource: Database 未释放资源:数据库 https://www.cnblogs.com/…
Privacy Violation: Heap Inspection 隐私泄露(堆检查) Abstract 将敏感数据存储在 String 对象中使系统无法从内存中可靠地清除数据. Explanation 如果在使用敏感数据(例如密码.社会保障号码.信用卡号等)后不清除内存,则存储在内存中的这些数据可能会泄漏. 通常而言, String 是所用的存储敏感数据,然而,由于 String 对象不可改变,因此用户只能使用 JVM 垃圾收集器来从内存中清除 String 的值. 除非 JVM 内存不足,…
Abstract 如果没有适当的 access control,就会执行一个包含用户控制主键的 SQL 指令,从而允许攻击者访问未经授权的记录. Explanation Database access control 错误在以下情况下发生: 数据从一个不可信赖的数据源进入程序. 这个数据用来指定 SQL 查询中主键的值. 例 1: 以下代码用到一个参数化指令,这个指令转义了元字符,以防止SQL injection 漏洞,并构建和执行一个 SQL 查询.该 SQL 查询指令可以搜索与指定标识符 […
Cross-Site Scripting: Persistent Abstract 向 Web 浏览器发送非法数据会导致浏览器执行恶意代码. Explanation Cross-Site Scripting (XSS) 漏洞在以下情况下发生: 数据通过一个不可信赖的数据源进入 Web 应用程序. 对于 Persistent(也称为 Stored) XSS,不可信赖的源通常为数据库或其他后端数据存储,而对于Reflected XSS,该源通常为 Web 请求. 2. 在未检验包含数据的动态内容是否…
Header Manipulation Abstract HTTP 响应头文件中包含未验证的数据会引发 cache-poisoning. cross-site scripting. cross-user defacement. page hijacking. cookie manipulation 或 open redirect. Explanation 以下情况中会出现 Header Manipulation 漏洞: 数据通过一个不可信赖的数据源进入 Web 应用程序,最常见的是 HTTP 请…
SQL Injection SQL注入 Abstract 通过不可信来源的输入构建动态 SQL 指令,攻击者就能够修改指令的含义或者执行任意 SQL 命令. Explanation SQL injection 错误在以下情况下发生: 数据从一个不可信赖的数据源进入程序. 数据用于动态地构造一个 SQL 查询. 例1: 以下代码动态地构造并执行了一个SQL查询,该查询可以搜索与指定名称相匹配的项. 该查询仅会显示条目所有者与被授予权限的当前用户一致的条目. ... String userName…
File Disclosure: Spring 文件泄露(Spring框架) Abstract 若通过用户输入构造服务器端重定向路径,攻击者便能够下载应用程序二进制码(包括应用程序的类或 jar 文件) 或者查看受保护的目录下的任意文件. Explanation 在以下情况下,会发生文件泄露: 数据从一个不可信赖的数据源进入程序. 数据用于动态地构造一个路径. 例 1: 下面的代码会接受不可信赖的数据,并使用其构造服务器端转发所使用的路径. ... String returnURL = requ…
Command Injection(命令注入) Abstract 执行不可信赖资源中的命令,或在不可信赖的环境中执行命令,都会导致程序以攻击者的名义执行恶意命令. Explanation Command Injection 漏洞主要表现为以下两种形式: - 攻击者能够篡改程序执行的命令: 攻击者直接控制了所执行的命令. - 攻击者能够篡改命令的执行环境: 攻击者间接地控制了所执行的命令. 在这种情况下,我们着重关注第一种情况,即攻击者控制所执行命令的可能性. 这种形式的 Command Inje…
Unreleased Resource: Database 未释放资源:数据库 Abstract 程序可能无法成功释放某一项系统资源. Explanation 程序可能无法成功释放某一项系统资源. 资源泄露至少有两种常见的原因: - 错误状况及其他异常情况. - 未明确程序的哪一部份负责释放资源. 大部分 Unreleased Resource 问题只会导致一般的软件可靠性问题, 但如果攻击者能够故意触发资源泄漏,该攻击者就有可能通过耗尽资源池的方式发起 denial of service 攻…
Path Manipulation Abstract 通过用户输入控制 file system 操作所用的路径,借此攻击者可以访问或修改其他受保护的系统资源. Explanation 当满足以下两个条件时,就会产生 path manipulation 错误: 1. 攻击者能够指定某一 file system 操作中所使用的路径. 2. 攻击者可以通过指定特定资源来获取某种权限,而这种权限在一般情况下是不可能获得的. 例如, 在某一程序中,攻击者可以获得特定的权限,以重写指定的文件或是在其控制的配…
Dynamic Code Evaluation: Code Injection Abstract 在运行时中解析用户控制的指令,会让攻击者有机会执行恶意代码. Explanation 许多现代编程语言都允许动态解析源代码指令. 这使得程序员可以执行基于用户输入的动态指令. 当程序员错误地认为由用户直接提供的指令仅会执行一些无害的操作时(如对当前的用户对象进行简单的计算或修改用户的状态),就会出现 code injection 漏洞: 然而,若不经过适当的验证,用户指定的操作可能并不是程序员最初所…
Privacy Violation 隐私泄露 Abstract 对各种机密信息处理不当,如客户密码或社会保障号码,会危及到用户的个人隐私,这是一种非法行为. Explanation Privacy Violation 会在以下情况下发生: 用户私人信息进入了程序. 数据被写到了一个外部介质,例如控制台. file system 或网络. 例: 以下代码包含了一个日志指令,该日志指令通过在日志文件中储存记录信息的方式跟踪添加到数据库中的各条记录信息. 在储存的其他数值中, getPassword(…
Race Condition: Singleton Member Field 竞争条件:单例的成员字段 Abstract Servlet 成员字段可能允许一个用户查看其他用户的数据. Explanation 许多 Servlet 开发人员都不了解 Servlet 为单例模式. Servlet 只有一个实例,并通过使用和重复使用该单个实例来处理需要由不同线程同时处理的多个请求. 这种误解的共同后果是,开发者使用 Servlet 成员字段的这种方式会导致某个用户可能在无意中看到其他用户的数据. 换言…
Abstract 所创建的 cookie 的 secure 标记没有设置为 true. Explanation 现今的 Web 浏览器支持每个 cookie 的 secure 标记. 如果设置了该标记,那么浏览器只会通过 HTTPS 发送 cookie. 通过未加密的通道发送 cookie 将使其受到网络截取攻击,因此安全标记有助于保护 cookie 值的保密性. 如果 cookie 包含私人数据或带有会话标识符,那么该标记尤其重要. 例 1: 在下面的示例中,在未设置 secure 标记的情况…
继续对Fortify的漏洞进行总结,本篇主要针对  Dynamic Code Evaluation: Code Injection(动态脚本注入) 和 Password Management: Hardcoded Password(密码硬编码)  的漏洞进行总结,如下: 1.1.产生原因: 许多现代编程语言都允许动态解析源代码指令.这使得程序员可以执行基于用户输入的动态指令.当程序员错误地认为由用户直接提供的指令仅会执行一些无害的操作时(如对当前的用户对象进行简单的计算或修改用户的状态),就会出…
1.Go to /etc/phpmyadmin/config.inc.php and open it your favorite editor. 2.Search for below line of code //$cfg['Servers'][$i]['AllowNoPassword'] = TRUE; code lines will be looks like :- if (!empty($dbname)) { //More code here /* Uncomment the follow…
RAR压缩文件密码破解工具是一款简单易用的RAR文档和ZIP文档密码破解软件,如果你不小心忘了解压密码或是下载的RAR文件需要密码,那么均可以使用本软件进行暴力破解.不管WinRAR /RAR 的密码有多长和多复杂,均可破解.Advanced Archive Password Recovery (ARCHPR) 是一个强大的压缩包密码破解工具,适用于ZIP和RAR档案的高度优化的口令恢复工具. 它可以恢复保护口令或将用所有流行的档案版本创建的加密 ZIP 和 RAR 档案解除锁定. 压缩文件密码…
@Configuration作用在类上,相当于一个xml文件 @bean作用于方法上,相当于xml配置中的<bean>标签 一个例子: 新建一个Springboot工程 新建一个User类:User.java package com.springboot.test; //建立一个User对象 public class User { private String username; private String password; private Integer age; public Stri…
技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com -------------------------------------------- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)    a.注意"a",这里的a是字符串      'a'这的a是字符    b.转义符只针对程序中的字符串,对于程序读取的字符串就没有这个问题.    c.这说明转义符是和内存存储没有关系的,因为当程序读取字符…
须要实现的效果: 有两台server:"192.168.201.236" 和 "192.168.201.237" 须要实现:在server"192.168.201.236"上实现ssh无password连接server"192.168.201.237" 实现步骤: 1) 在"192.168.201.236"server上使用"ssh-keygen -t rsa"命令来创建公钥. (会问你…
在对项目进行安全扫描时,发现一些密码硬编码问题,本文主要三个方面:1)什么是密码硬编码:2)密码硬编码的危害:3)密码硬编码的解决方案. 一 什么是密码硬编码 将密码以明文的形式直接写到代码中,就是密码硬编码. 下边示例中,将用户名和密码直接写到代码中,就是硬编码. function connectionDatabase(url, userName, password) { // .... } connectionDatabase('./api', 'zhangsan', '1234567');…
1.进入管理员控制台停止mysql服务:net stop mysql; 2.进入mysql的安装路径,如我的安装路径为C:\Program Files\MySQL\MySQL Server 5.5,打开my.ini文件,找到[mysqld],在该行下面添加 skip_grant_tables,也就是通知mysql,在登陆的时候跳过密码的验证,保存后退出: 3.重启mysql服务:net start mysql; 4.在控制台输入:mysql -u root -p 弹出输入密码的时候,只需要回车即…
1.问题描述: 今天登陆pl/sql工具时,提示 ORA-28002 the password will expire within 7 days 2.问题原因: oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180”所导致,oracle用户的密码必须在180天内更改,否则启动数据库的时候会提示连接失败. 3.解决方法 1)查看用户的profile设置 select username,profile from dba_users; 注:一般用户的…
解决方法: 最简单方法: ⑴打开mysql中的my.ini(如果没有就将my-default.ini复制一份,并修改为my.ini): ⑵在[mysqld]下面空白行直接添加skip-grant-tables: ⑶重启mysql,在cmd页面输入mysql,按回车键即可. 注:这会使你的mysql无法设置密码,但对个人使用而言这岂不是更省了一步! 重设root密码: ⑴停止mysql服务:net stop mysql ⑵输入:mysqld --skip-grant-tables ⑶重新打开一个c…
yum 安装 MYsql:        yum install mysql mysql-server mysql-devel -y 1.1 登入报错: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 解决办法:# service mysql stop # mysqld_safe --user=mysql --skip-grant-tables --skip-networkin…
第3章 Redis数据类型详解 3.1 Redis键/值介绍 Redis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如"foo"的简单字符串到一个JPG文件的内容都可以.空字符串也是有效key值. 关于key的几条规则: 太长的键值不是个好主意,例如1024字节的键值就不是个好主意,不仅因为消耗内存,而且在数据中查找这类键值的计算成本很高. 太短的键值通常也不是好主意,如果你要用"u:1000:pwd"来代替 user:1000:pass…
第1章 redis存储系统 1.1 redis概述 REmote DIctionary Server(Redis)是一个基于key-value键值对的持久化数据库存储系统.redis和大名鼎鼎的Memcached缓存服务软件很像,但是redis支持的数据存储类型比memcached更丰富,包括strings(字符串),lists(列表),sets(集合)和sorted sets(有序集合)等. 这些数据类型支持push/pop,add/remove及取交集,并集和差集及更丰富的操作,而且这些操作…