安巽
算法?了解过什么排序?
快速排序 冒泡排序
爬虫
页面存在很多js的时候,用什么
phnatomJS selenium execjs
爬虫的待爬取URL量级比较大的时候,如何对其去重
- 在数据库中创建字段的UNIQUE属性:对于在数据库中创建字段的UNIQUE属性, 的确是可以避免一些重复性操作。不过在多次MySQL报错之后,程序可能会直接崩溃,因此这种方式不可取
- 在数据库中创建一个唯一的索引,在插入数据之前检查待插入的数据是否存在:如果我们要在每一次插入数据之前都去检查待插入的数据是否存在,这样势必会影响程序的效率
- 使用Set或HashSet保存数据,确保唯一。可以使用redis,但是内存占用大
- 使用Map或是一个定长数组记录某一个URL是否被访问过
- 布隆过滤器(bloom filter),bitmap
多线程 异步 协程 多路复用 用哪一个最快 为什么
https://www.cnblogs.com/yuanchenqi/articles/6755717.html#_label3
线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能。线程没有自己的系统资源。
异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
协程是一种用户态的轻量级线程,拥有自己的寄存器上下文和栈
IO多路复用 异步阻塞IO 线程轮询IO
浏览器的常用编码
一开始我以为是说字符编码,有UTF8 Unicode GBK。面试官还几番提醒我也没答上来。回来一想,我觉得他应该问的是content-type。 http://www.runoob.com/http/http-content-type.html
web常用的加密算法有什么
非对称加密 RSA、ElGamal、Rabin 对称加密 DES、3DES、AES 散列算法 MD5 SHA base64
有没有内网渗透的经验?怎么渗透?如果拿下了边界层的某一个机器,如何对内网其他进行探测?
拿下机器后 内网渗透使用代理访问内网 windows环境:reGeorg与proxifier Linux(kali-linux)环境:reGeorg与proxychains,使用nmap等工具进行扫描,发现web服务的主机和其它信息。有时这些边界机器上会记录一些内网服务器上的一些信息(用户 ssh known_hosts hosts 防火墙设置 记录、内网之间好多waf 规则基本都是空,大多数waf防外部威胁 这时候可以拿到探测的内部一些开放的端口判断进行渗透,通常用户这里基本是统一命名的 拿到的各种记录 会暴露出部分内网通讯的ip
内网内弱口令占大多数 FTP MSSQL 远程桌面链接
mysql中like查询会会非常缓慢,如何进行优化
分词索引
做了cdn的网站如何获取真实IP
- 多地ping看是否有cdn
- 邮件订阅或者rss订阅
- 二级域名可能不会做cdn
- nslookup http://xxx.com 国外dns
- 查找域名历史解析记录,因为域名在上CDN之前用的IP,很有可能就是CDN的真实源IP地址 https://toolbar.netcraft.com/site_report?url=www.xxx.com
- phpinfo上显示的信息