U
    @†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:   || _ |  ¡ | _d| _t| ¡ ƒD ]}|| | j|< q"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 d| d | ¡ || jkr>d S d| j|< |  ¡  | j 	|¡¡sn| j d¡ d S zt
 |¡}|d krˆW d S W n6 tk
rÀ } z| j dd¡ W Y ¢d S d }~X Y nX |D ]:}| ¡ tkrÆ|d ||  }	td|	| j|ƒ}
|  |
¡ qÆ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   s4    



 ÿzsfp_strangeheaders.handleEvent)r5   Ú
__module__Ú__qualname__Ú__doc__r   r   Údictr!   r$   r&   rA   r   r   r   r    r      s   	r   )r/   Úsflibr   r   r   r4   r   r   r   r   r    Ú<module>   sT   
                               ù	