MENU

Category: 编程开发

UPnP安全(二):UPnP协议具体流程

在第一篇中对UPnP协议体系做了简单介绍,并没有涉及到具体的协议技术细节。

在本篇中将会对UPnP的整个流程进行仔细的梳理,并且结合实际的例子,对每个步骤进行讲解。

Read More

UPnP安全(一):UPnP协议介绍

最近在做IoT安全相关的时,发现许多设备都具备、甚至都开启了UPnP功能。而近期又陆续看到一些UPnP安全问题的文章,因此打算对UPnP进行系统的学习并作一个总结和归纳。

UPnP的安全其实很早就有了,检索了一下发现最早的在06年就出现了相关的技术,同时这十多年间陆陆续续又有很多的攻击点出现。

为了对这些出现的安全问题进行学习、复现,首先要对UPnP协议体系有一定的认识,对其整个过程要有理解。

Read More

DTD 相关知识

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档结构

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

Read More

从OJ题目学习python技巧系列(1):reduce

写在前面

1. 为什么会有这个系列

在日常工作写代码的时候,现目前笼统的划分为两个大的层面,一个是高层面的设计,比如技术选型、架构设计、设计模式、OOP等等,

另一个是底层针对设计的具体实现,比如一个具体的数据结构的实现、或简单或复杂的算法、甚至是一个函数、循环的实现。很多时候其实就是很小的点。

在我看来,高层的设计和底层的实现是相辅相成的,高层的设计保证了一个项目能走多远,而底层的实现保证了项目走的多高效和稳健,再庞大的项目也是由底层每一行代码、每一个函数(方法)来实现的。其是在其他的工业设计中也是同样的道理,人类社会也是一样的法则。扯远了。

所以为了锻炼我自己在实现这些很小的点时,能够处理的灵活、优雅,我最近开始争取每天都做一道OJ的题目,并且学习他人的解决办法,看看面对一个小问题别人是怎么实现的,别人实现的方式比我好在哪里。

其实在OJ上做练习是在大一时打ACM比赛留下的习惯,可能有的人对OJ抱怀疑或者不屑一顾的态度,但是从我个人的角度来说还是比较认可的,只不过可能完整练习
一个题目的耗时比较久。

虽然如此,仍然是把每天一道题的要求给自己安排上了,如果坚持一段时间,我想还是能有收获的。

2. 这个系列是干什么的

那么在做OJ的题目时,即使全部AC(ACM黑话,意思是测试点全部通过)了,但每个人的解法仍然不同,所以就可以从别人的解法中学的很多的东西,不同的知识点、不同的思维方式。

这个系列就是我在做题过程中学习他人解法和知识点的一个记录。

另外现目前我主要实在codewars上进行练习,主要使用的语言是python2(有的ACMer估计要鄙视我),因为这个OJ平台支持的编程语言比较多,同时在一个题目完成之后,你可以看到所有人针对这个题目的解法,同时每个人还可以对他人的解法进行打分,这样每次都可以和自己的解法对比学到很多。


Read More