blob: 63f0e9cdb60c5f7b0c9d452b6aea3dad08e8699c [file] [log] [blame]
Derek Allard2067d1a2008-11-13 22:59:24 +00001<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2/**
3 * CodeIgniter
4 *
5 * An open source application development framework for PHP 4.3.2 or newer
6 *
7 * @package CodeIgniter
8 * @author ExpressionEngine Dev Team
Derek Jones7f3719f2010-01-05 13:35:37 +00009 * @copyright Copyright (c) 2008 - 2010, EllisLab, Inc.
Derek Allard2067d1a2008-11-13 22:59:24 +000010 * @license http://codeigniter.com/user_guide/license.html
11 * @link http://codeigniter.com
12 * @since Version 1.0
13 * @filesource
14 */
15
16// ------------------------------------------------------------------------
17
18/**
19 * CodeIgniter Security Helpers
20 *
21 * @package CodeIgniter
22 * @subpackage Helpers
23 * @category Helpers
24 * @author ExpressionEngine Dev Team
25 * @link http://codeigniter.com/user_guide/helpers/security_helper.html
26 */
27
28// ------------------------------------------------------------------------
29
30/**
31 * XSS Filtering
32 *
33 * @access public
34 * @param string
Derek Jonesf0bcb3c2009-02-10 18:40:21 +000035 * @param bool whether or not the content is an image file
Derek Allard2067d1a2008-11-13 22:59:24 +000036 * @return string
37 */
38if ( ! function_exists('xss_clean'))
39{
Derek Jonesf0bcb3c2009-02-10 18:40:21 +000040 function xss_clean($str, $is_image = FALSE)
Derek Allard2067d1a2008-11-13 22:59:24 +000041 {
42 $CI =& get_instance();
Derek Jones11b1e512010-03-05 10:22:44 -060043 return $CI->security->xss_clean($str, $is_image);
Derek Allard2067d1a2008-11-13 22:59:24 +000044 }
45}
46
Derek Allard4433f422010-07-23 08:47:34 -040047// ------------------------------------------------------------------------
48
49/**
50 * Sanitize Filename
51 *
52 * @access public
53 * @param string
54 * @return string
55 */
56if ( ! function_exists('sanitize_filename'))
57{
58 function sanitize_filename($filename)
59 {
60 $CI =& get_instance();
61 return $CI->security->sanitize_filename($filename);
62 }
63}
64
Derek Allard2067d1a2008-11-13 22:59:24 +000065// --------------------------------------------------------------------
66
67/**
68 * Hash encode a string
69 *
Derek Allard8719a5c2009-10-08 16:42:59 +000070 * This is simply an alias for do_hash()
71 * dohash() is now deprecated
72 */
73if ( ! function_exists('dohash'))
74{
75 function dohash($str, $type = 'sha1')
76 {
Derek Jones11b1e512010-03-05 10:22:44 -060077 return do_hash($str, $type);
Derek Allard8719a5c2009-10-08 16:42:59 +000078 }
79}
80
81// --------------------------------------------------------------------
82
83/**
84 * Hash encode a string
85 *
Derek Allard2067d1a2008-11-13 22:59:24 +000086 * @access public
87 * @param string
88 * @return string
89 */
Derek Allard8719a5c2009-10-08 16:42:59 +000090if ( ! function_exists('do_hash'))
Derek Allard2067d1a2008-11-13 22:59:24 +000091{
Derek Allard8719a5c2009-10-08 16:42:59 +000092 function do_hash($str, $type = 'sha1')
Derek Allard2067d1a2008-11-13 22:59:24 +000093 {
94 if ($type == 'sha1')
95 {
96 if ( ! function_exists('sha1'))
97 {
98 if ( ! function_exists('mhash'))
99 {
100 require_once(BASEPATH.'libraries/Sha1'.EXT);
101 $SH = new CI_SHA;
102 return $SH->generate($str);
103 }
104 else
105 {
106 return bin2hex(mhash(MHASH_SHA1, $str));
107 }
108 }
109 else
110 {
111 return sha1($str);
112 }
113 }
114 else
115 {
116 return md5($str);
117 }
118 }
119}
120
121// ------------------------------------------------------------------------
122
123/**
124 * Strip Image Tags
125 *
126 * @access public
127 * @param string
128 * @return string
129 */
130if ( ! function_exists('strip_image_tags'))
131{
132 function strip_image_tags($str)
133 {
134 $str = preg_replace("#<img\s+.*?src\s*=\s*[\"'](.+?)[\"'].*?\>#", "\\1", $str);
135 $str = preg_replace("#<img\s+.*?src\s*=\s*(.+?).*?\>#", "\\1", $str);
136
137 return $str;
138 }
139}
140
141// ------------------------------------------------------------------------
142
143/**
144 * Convert PHP tags to entities
145 *
146 * @access public
147 * @param string
148 * @return string
149 */
150if ( ! function_exists('encode_php_tags'))
151{
152 function encode_php_tags($str)
153 {
154 return str_replace(array('<?php', '<?PHP', '<?', '?>'), array('&lt;?php', '&lt;?PHP', '&lt;?', '?&gt;'), $str);
155 }
156}
157
158
159/* End of file security_helper.php */
Derek Jonesa3ffbbb2008-05-11 18:18:29 +0000160/* Location: ./system/helpers/security_helper.php */