45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Validates file as defined by RFC 1630 and RFC 1738.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class HTMLPurifier_URIScheme_file extends HTMLPurifier_URIScheme
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Generally file:// URLs are not accessible from most
							 | 
						||
| 
								 | 
							
								     * machines, so placing them as an img src is incorrect.
							 | 
						||
| 
								 | 
							
								     * @type bool
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public $browsable = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Basically the *only* URI scheme for which this is true, since
							 | 
						||
| 
								 | 
							
								     * accessing files on the local machine is very common.  In fact,
							 | 
						||
| 
								 | 
							
								     * browsers on some operating systems don't understand the
							 | 
						||
| 
								 | 
							
								     * authority, though I hear it is used on Windows to refer to
							 | 
						||
| 
								 | 
							
								     * network shares.
							 | 
						||
| 
								 | 
							
								     * @type bool
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public $may_omit_host = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @param HTMLPurifier_URI $uri
							 | 
						||
| 
								 | 
							
								     * @param HTMLPurifier_Config $config
							 | 
						||
| 
								 | 
							
								     * @param HTMLPurifier_Context $context
							 | 
						||
| 
								 | 
							
								     * @return bool
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public function doValidate(&$uri, $config, $context)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        // Authentication method is not supported
							 | 
						||
| 
								 | 
							
								        $uri->userinfo = null;
							 | 
						||
| 
								 | 
							
								        // file:// makes no provisions for accessing the resource
							 | 
						||
| 
								 | 
							
								        $uri->port = null;
							 | 
						||
| 
								 | 
							
								        // While it seems to work on Firefox, the querystring has
							 | 
						||
| 
								 | 
							
								        // no possible effect and is thus stripped.
							 | 
						||
| 
								 | 
							
								        $uri->query = null;
							 | 
						||
| 
								 | 
							
								        return true;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// vim: et sw=4 sts=4
							 |