3
@†6^\  ã            +   @   sŠ   d dl Z d dlmZmZmZ ddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-g+ZG d.d/„ d/eƒZdS )0é    N)Ú
SpiderFootÚSpiderFootPluginÚSpiderFootEventzaccess-control-allow-originzaccept-rangesÚageÚallowzcache-controlÚ
connectionzcontent-encodingzcontent-languagezcontent-lengthzcontent-locationzcontent-md5zcontent-dispositionzcontent-rangezcontent-typeÚdateÚetagÚexpireszlast-modifiedÚlinkÚlocationZp3pÚpragmazproxy-authenticateÚrefreshzretry-afterÚserverz
set-cookieÚstatuszstrict-transport-securityÚtrailerztransfer-encodingZvaryZviaÚwarningzwww-authenticatezx-frame-optionszx-xss-protectionzcontent-security-policyzx-content-security-policyzx-webkit-cspzx-content-type-optionszx-powered-byzx-ua-compatiblec               @   s>   e Zd ZdZi ZdZeƒ fdd„Zdd„ Zdd„ Z	d	d
„ Z
dS )Úsfp_strangeheaderszmStrange Headers:Footprint,Passive:Content Analysis::Obtain non-standard HTTP headers returned by web servers.Nc             C   s>   || _ | jƒ | _d| _x"t|jƒ ƒD ]}|| | j|< q$W d S )NzTarget Website)ÚsfÚtempStorageÚresultsÚ__dataSource__ÚlistÚkeysÚopts)ÚselfÚsfcÚuserOptsÚopt© r   ú=/var/www/spiderfoot.crq.systems/modules/sfp_strangeheaders.pyÚsetup#   s
    
zsfp_strangeheaders.setupc             C   s   dgS )NÚWEBSERVER_HTTPHEADERSr   )r   r   r   r    ÚwatchedEvents,   s    z sfp_strangeheaders.watchedEventsc             C   s   dgS )NÚWEBSERVER_STRANGEHEADERr   )r   r   r   r    ÚproducedEvents2   s    z!sfp_strangeheaders.producedEventsc             C   s   |j }|j}|j}|j}| jjd| d | ƒ || jkr>d S d| j|< | jƒ j| jj	|ƒƒsn| jjdƒ d S yt
j|ƒ}|d kr†d S W n. tk
r¶ } z| jjddƒ d S d }~X nX xB|D ]:}|jƒ tkr¾|d ||  }	td|	| j|ƒ}
| j|
ƒ q¾W d S )	NzReceived event, z, from Tz5Not collecting header information for external sites.zBReceived HTTP headers from another module in an unexpected format.Fz: r$   )Ú	eventTypeÚmoduleÚdataÚactualSourcer   Údebugr   Ú	getTargetÚmatchesÚurlFQDNÚjsonÚloadsÚBaseExceptionÚerrorÚlowerÚheadersr   Ú__name__ÚnotifyListeners)r   ÚeventÚ	eventNameÚsrcModuleNameÚ	eventDataÚeventSourceÚjdataÚeÚkeyÚvalÚevtr   r   r    ÚhandleEvent6   s0    




zsfp_strangeheaders.handleEvent)r4   Ú
__module__Ú__qualname__Ú__doc__r   r   Údictr!   r#   r%   r@   r   r   r   r    r      s   	r   )r.   Úsflibr   r   r   r3   r   r   r   r   r    Ú<module>   s   

