CFDBPermittedFunctions

The Contact Form DB CFDBPermittedFunctions class.

Defined (1)

The class is defined in the following location(s).

/CFDBPermittedFunctions.php  
  1. class CFDBPermittedFunctions { 
  2.  
  3. var $permitAllFunctions = false; 
  4.  
  5. var $permittedFunctions; 
  6.  
  7. static $defaultPermitted = array( 
  8.  
  9. // PHP functions 
  10. 'addcslashes',  
  11. 'addslashes',  
  12. 'chop',  
  13. 'chr',  
  14. 'count_chars',  
  15. 'localeconv',  
  16. 'ltrim',  
  17. 'md5',  
  18. 'money_format',  
  19. 'nl2br',  
  20. 'number_format',  
  21. 'rtrim',  
  22. 'sha1',  
  23. 'str_ireplace',  
  24. 'str_pad',  
  25. 'str_repeat',  
  26. 'str_replace',  
  27. 'str_shuffle',  
  28. 'str_word_count',  
  29. 'strcasecmp',  
  30. 'strchr',  
  31. 'strcmp',  
  32. 'strcoll',  
  33. 'strcspn',  
  34. 'strip_tags',  
  35. 'stripcslashes',  
  36. 'stripos',  
  37. 'stripos',  
  38. 'strlen',  
  39. 'strnatcasecmp',  
  40. 'strnatcmp',  
  41. 'strncasecmp',  
  42. 'strncmp',  
  43. 'strpbrk',  
  44. 'strpos',  
  45. 'strspn',  
  46. 'strrev',  
  47. 'strstr',  
  48. 'strtok',  
  49. 'strtolower',  
  50. 'strtoupper',  
  51. 'strtr',  
  52. 'substr',  
  53. 'substr_compare',  
  54. 'substr_count',  
  55. 'substr_replace',  
  56. 'trim',  
  57. 'ucfirst',  
  58. 'ucwords',  
  59. 'wordwrap',  
  60. 'date',  
  61. 'microtime',  
  62. 'strtotime',  
  63. 'idate',  
  64. 'gmstrftime',  
  65. 'mktime',  
  66. 'strftime',  
  67. 'time',  
  68. 'intval',  
  69. 'boolval',  
  70. 'floatval',  
  71. 'strval',  
  72. 'bcmul',  
  73. 'bcdiv',  
  74. 'abs',  
  75. 'acos',  
  76. 'acoh',  
  77. 'asin',  
  78. 'asinh',  
  79. 'atan2',  
  80. 'atan',  
  81. 'atanh',  
  82. 'base_convert',  
  83. 'bindec',  
  84. 'ceil',  
  85. 'cos',  
  86. 'cosh',  
  87. 'decbin',  
  88. 'dechex',  
  89. 'decoct',  
  90. 'deg2rad',  
  91. 'exp',  
  92. 'expm1',  
  93. 'floor',  
  94. 'fmod',  
  95. 'getrandmax',  
  96. 'hexdec',  
  97. 'hypot',  
  98. 'intdiv',  
  99. 'is_finite',  
  100. 'is_infinite',  
  101. 'is_nan',  
  102. 'lcg_value',  
  103. 'log10',  
  104. 'log1p',  
  105. 'log',  
  106. 'max',  
  107. 'min',  
  108. 'mt_getrandmax',  
  109. 'mt_rand',  
  110. 'mt_srand',  
  111. 'octdec',  
  112. 'pi',  
  113. 'pow',  
  114. 'rad2deg',  
  115. 'rand',  
  116. 'round',  
  117. 'sin',  
  118. 'sqrt',  
  119. 'srand',  
  120. 'tan',  
  121. 'tanh',  
  122.  
  123.  
  124. // WordPress-defined functions 
  125. 'human_time_diff',  
  126. 'current_time',  
  127.  
  128. // CFDB-defined functions 
  129. 'concat',  
  130. 'sum',  
  131. 'multiply' 
  132.  
  133. ); 
  134.  
  135.  
  136. public function init() { 
  137. $this->permittedFunctions = CFDBPermittedFunctions::$defaultPermitted; 
  138.  
  139. public static function getInstance() { 
  140. static $inst = null; 
  141. if ($inst === null) { 
  142. $inst = new CFDBPermittedFunctions(); 
  143. $inst->init(); 
  144. return $inst; 
  145.  
  146. public function setPermitAllFunctions($trueOrFalse) { 
  147. $this->permitAllFunctions = $trueOrFalse; 
  148.  
  149. public function isFunctionPermitted($functionName) { 
  150. if ($this->permitAllFunctions === true) { 
  151. return true; 
  152. } else { 
  153. return in_array($functionName, $this->permittedFunctions); 
  154.  
  155. public function addPermittedFunction($functionName) { 
  156. if ($functionName && !in_array($functionName, $this->permittedFunctions)) { 
  157. $this->permittedFunctions[] = $functionName; 
  158.  
  159.