爱奇艺安全 招聘安全实习生: 渗透测试、安全开发、代码审计
实习地址: 北京-海淀-中关村
渗透测试: 理解常见安全漏洞,会使用常见工具,有漏洞挖掘、进一步渗透的基本思路
安全开发: 熟练掌握 Go/Python/Java 中的一门语言,有一定的攻防基础知识。 参与 HIDS、扫描器、堡垒机等内部服务开发
代码审计: 白盒代码扫描report review,参与持续优化内部的代码扫描服务
请投递简历至 lijiejie[at]qiyi.com
爱奇艺安全 招聘安全实习生: 渗透测试、安全开发、代码审计
实习地址: 北京-海淀-中关村
渗透测试: 理解常见安全漏洞,会使用常见工具,有漏洞挖掘、进一步渗透的基本思路
安全开发: 熟练掌握 Go/Python/Java 中的一门语言,有一定的攻防基础知识。 参与 HIDS、扫描器、堡垒机等内部服务开发
代码审计: 白盒代码扫描report review,参与持续优化内部的代码扫描服务
请投递简历至 lijiejie[at]qiyi.com
Python父进程通过logging.basicConfig,设定日志文件的路径,子进程再次通过basicConfig设定另一个新的路径。这个操作,在Windows系统和Linux下表现不一致。
区别在于,Windows下将打开不同的文件句柄,写入2个不同的文件 。而在Linux下,则config看起来无效,子进程和父进程使用同一个文件描述符,第二次config无效。(解决的方法文末补充)
import logging
import os
import multiprocessing
import threading
cwd = os.getcwd()
def set_log(log_file_path):
logging.basicConfig(filename=log_file_path,
filemode='a+',
format='%(message)s',
level=logging.INFO)
logging.info('%s: %s' % (logging.root, log_file_path) )
def test_func():
set_log(os.path.join(cwd, 'test2.log'))
class TestThread(threading.Thread):
def __init__(self):
p = multiprocessing.Process(target=test_func)
p.start()
if __name__ == '__main__':
set_log(os.path.join(cwd, 'test.log'))
TestThread()
这个程序在Windows的执行结果是
logging.RootLogger object at 0x0000000002610C18>: C:\test\test.log
logging.RootLogger object at 0x000000000276C7B8>: C:\test\test2.log
可以看到,日志写入了两个不同的文件。并且Logger ID不一样
在Linux下的执行结果是
[root@cyberivy-web-dev002-whdx test]# ls *.log
test.log
[root@cyberivy-web-dev002-whdx test]# cat test.log
: /root/test/test.log
: /root/test/test2.log
两个进程的日志都写到了test.log中。 并且 Logger ID 和 fd是一样的
子进程在set_log之前,先 reload(logging), test_func变成
def test_func():
reload(logging)
set_log(os.path.join(cwd, 'test2.log'))
修改之后,在Linux执行,日志同样会写入不同的文件
[root@cyberivy-web-dev002-whdx test]# ls *.log
test2.log test.log
[root@cyberivy-web-dev002-whdx test]# cat *.log
logging.RootLogger object at 0x1df28d0>: /root/test/test2.log
logging.RootLogger object at 0x1d80bd0>: /root/test/test.log
昨天群里,大家聊到了一个面试题,关于 浅复制 (shallow copy )的。 相信很多人都写过类似的错误代码。
items = list(range(1, 11)) while items: tmp_items = items # tmp_items referred to items for i in tmp_items: items.remove(i) print items
通过一个for loop遍历删除列表中的元素(这里示例1到10)。最终执行的结果是
[2, 4, 6, 8, 10] [4, 8] [8] []
可以看到,每次循环,只有奇数位的数字被从列表移除了,偶数位的数字被保留下来。
这跟列表是一个链表结构有关系。
第二,这里的 tmp_items = items 是浅复制, tmp_items只是items的引用
迭代器在遍历列表的时候,从head开始
head -> pointer1 -> 1 pointer2 -> 2 ... pointer10 -> 10
循环开始,首先删除第一个元素(1),此时,对应的head指针移动到指针2
head -> pointer2 -> 2 ... pointer10 -> 10
继续遍历时, head->next 指向的是已经是元素3。 于是,最终只有奇数位置的元素被移除了。
招聘安全实习生一名,欢迎投递简历。
地点: 北京 – 中关村
技能要求:
1. 理解常见web漏洞:SQL注入、XSS、CSRF、SSRF、上传漏洞、代码(命令)执行、常见业务逻辑缺陷等
2. 熟练使用常见的安全工具: awvs sqlmap nmap burpsuite appscan等
3. 有一定的渗透测试经验,了解常见漏洞的测试流程、利用、修复
4. 掌握Java 或 C++基础。 熟练使用一门脚本语言Python、Go等, 熟悉 Linux(shell scripts)。
5. 有Android/iOS客户端漏洞挖掘经验可加分, 熟悉主流web框架可加分, 有代码安全审计经验可加分
6. 良好的沟通能力,自我驱动学习,善于用代码解决问题
实习期间工作内容:
渗透测试(挖漏洞) 白盒代码审计 安全服务开发
投递邮箱:
python -c “import base64; print base64.b64decode(‘bGlqaWVqaWVAcWl5aS5jb20=’)”
QQ:
echo OTE4MjI2Mwo=|base64 -d
爱奇艺安全团队在北京招聘 安全服务开发工程师1名,
主要负责公司内部安全服务平台的开发和优化:SIEM、态势感知、入侵检测、堡垒机、扫描平台等。 欢迎投递简历! lijiejie[at]qiyi.com
要求:
1. 熟练掌握Python,熟悉Django等web框架。 了解AngularJS等前端框架
2. 熟悉 Linux 操作系统, 熟悉常见算法和数据结构
3. 熟练使用MySQL,掌握查询优化; 熟练使用MongoDB
4. 熟悉RabbitMQ/ActiveMQ/RocketMQ、Redis、Kafka 等消息中间件,了解Elasticsearch,了解Docker
5. 有安全攻防经验优先、有海量数据处理和分析经验优先
岗位职责:
实施Web/移动APP、内外网主机和应用安全测试,输出测试报告和修复建议,跟进业务修复
安全事件应急响应,及时分析、验证、报告、溯源外部威胁和情报
跟进最新安全漏洞,驱动业务团队修复,协助验证
开发和增强现有的扫描系统和应急响应工具链
任职要求:
本科及以上学历
像黑客一样思考, 参加过CTF的优先, 在各SRC提交过漏洞的优先
掌握Python和Linux Shell
熟悉OWASP TOP10, 熟悉Android IOS安全机制的优先
熟悉汇编、反编译、脱壳、Hook和加解密技术更佳,能熟练使用IDA等逆向分析工具更佳
岗位职责:
开发和维护内部安全服务: 堡垒机、 SIEM、 入侵检测、 蜜罐、态势感知服务、抗D服务
负责海量安全样本数据的提取,分析,挖掘,和总结
任职要求:
计算机和信息安全相关专业,本科及以上学历,有安全专业背景更佳
熟练Java或Python及常用 Web 开发框架的优先
熟悉Linux下的C程序开发者优先
熟悉 Linux 操作系统、 TCP/IP网络协议,熟悉网络包处理
有安全项目经验优先
薪资:20-40K
福利:
舒适的工作环境, 免费茶饮咖啡, 12天带薪休假
免费体检, 五险一金, 补充医疗、子女补充医疗, 人身意外伤害险
定期团建活动, 每月生日party, 各类员工活动俱乐部. 丰富的年节活动, 午餐补助、交通补助
内部优惠, 结婚生育礼金, 创意基金, 完善的晋升机制, 各类前沿培训课程
投递邮箱: lijiejie[at]qiyi.com