安巽

算法?了解过什么排序?

快速排序 冒泡排序

爬虫

页面存在很多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

  1. 多地ping看是否有cdn
  2. 邮件订阅或者rss订阅
  3. 二级域名可能不会做cdn
  4. nslookup http://xxx.com 国外dns
  5. 查找域名历史解析记录,因为域名在上CDN之前用的IP,很有可能就是CDN的真实源IP地址 https://toolbar.netcraft.com/site_report?url=www.xxx.com
  6. phpinfo上显示的信息

渗透的时候如何隐藏自己的身份

主机疑似遭到入侵,要看哪里的日志

SQL注入漏洞怎么修复