爱奇艺招聘【高级/资深安全工程师】

爱奇艺招聘【高级/资深安全工程师】【北京-中关村】

工作职责:

  1. 参与SDL实施:安全评估、安全设计、渗透测试、安全加固
  2. 负责办公网安全持续建设:域控、邮箱、海量终端设备、关键办公系统的防护、加固、渗透
  3. 主导应急响应工作:具备快速获取情报,高效响应处置的能力。持续完善内部自动化应急响应流程、取证分析流程
  4. 主导爱奇艺内部的季度红蓝演练工作:演练方案的合理制定、执行、跟踪、总结、短板能力的提升
  5. 持续跟踪爱奇艺核心业务的安全风险,参与黑产对抗

要求:

  1. 熟悉常见安全漏洞,渗透测试经验丰富。大型CTF或者各SRC TOP白帽子优先。熟悉Java Web安全优先
  2. 熟悉常见业务威胁场景。能够制定良好的可实施的整体安全方案。有SDL经验优先
  3. 至少熟练掌握一门编程语言:Python/Go/Java/C++。 具备开发简单Web应用、简单POC/EXP的能力
  4. 有长期黑产对抗经验者优先

简历请投递 lijiejie[at]qiyi.com

.idea 文件夹泄露利用工具

.idea 文件夹泄露,可能引起敏感数据泄露。下图是测试 扫描器发现的一处漏洞

可以看到 DbConnCfg.json 包含密码信息

我写了一个脚本,用来自动下载可能的敏感文件。有兴趣的同学可以试试

https://github.com/lijiejie/idea_exploit

招聘高级安全开发工程师 (北京-爱奇艺)

爱奇艺安全团队在北京招聘开发工程师,欢迎投递简历。 相应的开发实习生职位,也依然可以申请。

岗位职责

负责内部安全服务的功能开发、持续优化

基本要求

  • 2~5年Python后台开发经验,掌握Django等Web框架
  • 具备相对完整的知识体系:操作系统、数据结构、算法、网络、数据库
  • 熟练使用Linux,可编写shell脚本
  • 熟练使用Python,能够设计实现相对复杂的工程。具备良好的代码风格,掌握程序调试和性能优化
  • 熟练使用MySQL、Redis、MongoDB等数据库,了解常见的数据库优化
  • 掌握JavaScript和CSS:Jquery、AngularJS、Bootstrap等
  • 了解ES、kafka、hadoop、hbase、hive、docker
  • CS和软件工程优先。 有一定漏洞挖掘、应急响应经验者优先。 责任心强

薪资福利

视面试结果

简历投递

lijiejie[at]qiyi.com

招聘安全实习生(北京-中关村) 2019-03(仍然有效)

爱奇艺安全 招聘安全实习生: 渗透测试、安全开发、代码审计

实习地址: 北京-海淀-中关村

渗透测试: 理解常见安全漏洞,会使用常见工具,有漏洞挖掘、进一步渗透的基本思路

安全开发: 熟练掌握 Go/Python/Java 中的一门语言,有一定的攻防基础知识。 参与 HIDS、扫描器、堡垒机等内部服务开发

代码审计: 白盒代码扫描report review,参与持续优化内部的代码扫描服务

请投递简历至 lijiejie[at]qiyi.com

Python子进程logging config在Win和Linux下表现不一致的问题

Python父进程通过logging.basicConfig,设定日志文件的路径,子进程再次通过basicConfig设定另一个新的路径。这个操作,在Windows系统和Linux下表现不一致。

区别在于,Windows下将打开不同的文件句柄,写入2个不同的文件 。而在Linux下,则config看起来无效,子进程和父进程使用同一个文件描述符,第二次config无效。(解决的方法文末补充)

这个程序在Windows的执行结果是

可以看到,日志写入了两个不同的文件。并且Logger ID不一样

在Linux下的执行结果是

两个进程的日志都写到了test.log中。 并且 Logger ID 和 fd是一样的

解决的办法

子进程在set_log之前,先 reload(logging), test_func变成

修改之后,在Linux执行,日志同样会写入不同的文件

Python浅复制导致for loop删除剩下偶数位元素的问题

昨天群里,大家聊到了一个面试题,关于 浅复制 (shallow copy )的。 相信很多人都写过类似的错误代码。

通过一个for loop遍历删除列表中的元素(这里示例1到10)。最终执行的结果是

可以看到,每次循环,只有奇数位的数字被从列表移除了,偶数位的数字被保留下来。

这跟列表是一个链表结构有关系。

第二,这里的 tmp_items = items 是浅复制, tmp_items只是items的引用

迭代器在遍历列表的时候,从head开始

循环开始,首先删除第一个元素(1),此时,对应的head指针移动到指针2

继续遍历时, head->next 指向的是已经是元素3。    于是,最终只有奇数位置的元素被移除了。