硬编码

Fortify漏洞之Portability Flaw: File Separator 和 Poor Error Handling: Return Inside Finally

匿名 (未验证) 提交于 2019-12-02 23:43:01
Fortify漏洞之Portability Flaw: File Separator 和 Poor Error Handling: Return Inside Finally 1、Portability Flaw: File Separator(文件分隔符) 1.1、产生原因:   不同的操作系统使用不同的字符作为文件分隔符。例如,Microsoft Windows 系统使用“\”,而 UNIX 系统则使用“/”。应用程序需要在不同的平台上运行时,使用 硬编码文件分隔符 会导致应用程序逻辑执行错误,并有可能导致 denial of service(拒绝服务)。 例 1 :以下代码使用硬编码文件分隔符来打开文件: ... "\\" 1.2、修复方案:   为编写可移植代码, 不应使用硬编码文件分隔符 ,而应使用语言库提供的独立于平台的 API。 例 2 : 下列代码执行与例 1 相同的功能,但使用独立于平台的 API 来指定文件分隔符: ... File file = new File(directoryName + 2、Poor Error Handling: Return Inside Finally 2.1、产生原因: 例 1 : public static void doMagic() throws Exception {   try { //1. 抛出异常 //2.

权限设计=功能权限+数据权限

馋奶兔 提交于 2019-12-02 18:50:35
权限管理 Authority Management 目前主要是通过用户、角色、资源三方面来进行权限的分配。 具体来说,就是赋予用户某个角色,角色能访问及操作不同范围的资源。 通过建立角色系统,将用户和资源进行分离,来保证权限分配的实施。 一般指根据系统设置的安全规则或者安全策略, 用户可以访问而且只能访问自己被授权的资源。 场景举例 企业IT管理员一般都能为系统定义角色,给用户分配角色。 这就是最常见的基于角色访问控制。 场景举例: 给张三赋予“人力资源经理”角色,“人力资源经理”具有“查询员工”、“添加员工”、“修改员工”和“删除员工”权限。此时张三能够进入系统,则可以进行这些操作; 去掉李四的“人力资源经理”角色,此时李四就不能够进入系统进行这些操作了。 以上举例,局限于功能访问权限。还有一些更加丰富、更加细腻的权限管理。 比如: 因为张三是北京分公司的“人力资源经理”,所以他能够也只能够管理北京分公司员工和北京分公司下属的子公司(海淀子公司、朝阳子公司、西城子公司、东城子公司等)的员工; 因为王五是海淀子公司的“人力资源经理”,所以他能够也只能够管理海淀子公司的员工; 普通审查员审查财务数据的权限是:在零售行业审核最高限额是¥50万,在钢铁行业最高限额是¥1000万;高级审查员不受该限额限制; ATM取款每次取款额不能超过¥5000元,每天取款总额不能超过¥20000元。

Django需要注意的10个要点

二次信任 提交于 2019-12-02 17:36:04
1,不要将项目名称包含在引用代码里 比如你创建了一个名为"project"的项目,包含一个名为"app"的应用,那么如下代码是不好的: Python代码 from project.app.models import Author 缺点在于:应用和项目变成了紧耦合,无法将应用轻易变得可重用。如果将来要换一个项目名称,那你可有得受了。 推荐的做法是: Python代码 from app.models import Author 请注意,你需要将项目的路径配置在PYTHONPATH中。 2,不要硬编码MEDIA_ROOT和TEMPLATE_DIRS 项目配置文件settings.py中不要使用如下代码: Python代码 TEMPLATE_DIRS = ( "/home/html/project/templates" ,) MEDIA_ROOT = "/home/html/project/appmedia/" 当你在部署到生产环境,或者迁移服务器的时候,就会发生问题。 推荐使用如下方式: Python代码 SITE_ROOT = os.path.realpath(os.path.dirname(__file__)) MEDIA_ROOT = os.path.join(SITE_ROOT, 'appmedia' ) TEMPLATE_DIRS = ( os.path.join(SITE

第四次博客作业-结对项目

走远了吗. 提交于 2019-12-01 20:18:24
1)提供你的结对成员的博客链接地址 四班阚宇航: https://www.cnblogs.com/designer97k/ (2)结对成员对四则运算项目进行代码互审,并给出代码审查结果表 二班孙帅群的代码审查表(由四班阚宇航完成) 代码复审核查表 1.概要部分 1.代码能符合需求和规范说明吗? 代码不符合需求和规格说明,运行时题目有存到result文档中,但是并没有弹出运行结果。 2.代码设计是否考虑周全? 代码满足需求,每个功能都能用类实现,但是考虑不周全,没有考虑用户的非法输入。 3.代码可读性如何? 代码缩进规范,代码中标识符命名不足够规范。 4.代码容易维护吗? 不容易维护,所有的功能都是在同一个类中完成。 5.代码的每一行都执行并检查过了吗? 代码每一行都能执行没有错误。 2.设计规范部分 1.设计是否遵循已知的设计模式或项目中常用的模式? 代码设计没有用到已知的常用的六种设计模式 2.有没有硬编码字符串或数字等存在? 没有硬编码,字符串或数字等存在 3.代码有没有依赖于某平台,是否会影响将来的移植? 代码用Java编写,没有依赖某一特定的平台,不影响移植 4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 代码中用到了Java中的其他包中的现有的类,所以不用全部重新实现。 5

简单、高效、易用的全平台(Windows/Linux/ARM/Android/iOS)RTMP直播推送库EasyRTMP视频硬编码的流程解析

﹥>﹥吖頭↗ 提交于 2019-11-30 22:26:27
关于RTMP推流组件 EasyRTMP 是一套调用简单、功能完善、运行高效稳定的RTMP推流功能组件,经过多年客户实战和线上运行打造,支持RTMP推送断线重连、环形缓冲、智能丢帧、网络事件回调,支持Windows、Linux、ARM、Android、iOS平台,支持市面上绝大部分的RTMP流媒体服务器,能够完美应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等方面。结合EasyDSS流媒体服务器,为开发者提供专业、稳定的直播推流、转码、分发服务,全面满足低超低延迟、超高画质、超大并发访问量的要求。 ​ 提出问题: EasyRTMP-iOS介绍下视频硬编码的简单流程。 分析问题: H.264 HWEncoder.m文件实现了视频的硬编码功能。 解决问题: iOS处理音频的库是VideoToolbox,视频硬编码的流程如下: 1、-initVideoToolBox中调用 VTCompressionSessionCreate创建编码session,并调用VTSessionSetProperty设置参数: ​ 再调用VTCompressionSessionPrepareToEncodeFrames开始编码: ​ 2、将获取到摄像头的视频帧,传入-encode: 调用VTCompressionSessionEncodeFrame传入需要编码的视频帧: ​ 3

第九章 缓冲区溢出

為{幸葍}努か 提交于 2019-11-29 19:23:11
程序漏洞从哪里来 • 罪恶的根源:变量 • 数据与代码边界不清 • 最简漏洞原理 —— shell脚本漏洞 缓冲区溢出 • 当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被“撑暴”,从而覆盖了相邻内存区域的数据; • 成功修改内存数据,可造成进程劫持,执行恶意代码,获取服务器控制权等后果 如何发现 漏洞 • 源码审计 • 逆向工程 • 模糊测试 • 向程序堆栈半随机的数据,根据内存变化判断溢出 • 数据生成器:生成随机、半随机数据 • 测试工具:识别溢出漏洞 WINDOWS 缓冲区溢出 FUZZER • SLMail 5.5.0 Mail Server • ImmunityDebugger_1_85_setup.exe • mona.py • http://pan.baidu.com/s/1o6kT6gM • SLMail 5.5.0 Mail Server • POP3 PASS 命令存在缓冲区溢出漏洞 • 无需身份验证实现远程代码执行 • DEP:阻止代码从数据页被执行 • ASLR:随机内存地址加载执行程序和DLL,每次重启地址变化 POP3 • Nc 110端口 • 了解未知协议 • Wireshark • RFC FUZZING • 测试 PASS 命令接收到大量数据时是否会溢出 • EIP 寄存器存放下一条指令的地址 FUZZING •

第三章 数据类型,变量

假装没事ソ 提交于 2019-11-28 17:44:09
1 数据类型 数据在这里理解为狭义的数据,即指可表示的字符构成的数据,数据抽象的描述了信息。数据的类型则可以看作是数据的一种分类或者模板,数据类型详细的说明了数据的数据对象的特征。 例如:数据类型:int ;数据对象12345678 此外,int类型还描述了数据对象为占用32位内存的整数,名称为int。 变成语言存取数据是通过变量实现的,变量是一个名称,表示程序在执行时存储在内存中的数据。 通过类型来定义数据对象的行为,称为模板的实例化。 例如:int a=1; 数据对象也可以独立出现在程序中(它们也是有类型的),这种方式称为硬编码,由于硬编码不具备适应性,要尽量避免使用硬编码。 C#提供了15预定义类型,客观事物及其信息通常被转换为这些类型,并进行存储和计算。 整数型(8种), sbyte byte short ushort int uint long ulong 来源: https://www.cnblogs.com/setq/p/8599819.html