Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save huuyafwww/1b50f5604493addb1b2391b83d764bb1 to your computer and use it in GitHub Desktop.
Save huuyafwww/1b50f5604493addb1b2391b83d764bb1 to your computer and use it in GitHub Desktop.
<pre>
<?php
/**
* All of the Arguments do Sanitize
*
* @param string|array $__stringer
* @return string|array
*/
function __h(
&$__stringer
)
{
if(
is_array($__stringer)
||
!$__stringer = htmlspecialchars($__stringer)
)
{
foreach(
$__stringer
as
&$__string
)
{
$__string = htmlspecialchars($__string);
}
}
}
$str_array = [
"<h1>H1です🤗</h1>"
];
$str = "<h1>H1です🤗</h1>";
__h($str);
__h($str_array);
print_r($str);
print_r($str_array);
@huuyafwww
Copy link
Author

引数が、
String型であれば、
その引数の文字列をサニタイズした文字列
Array型であれば、
その引数の配列内にあるすべての要素をサニタイズした配列
として処理を行う関数。

is_array($__stringer)trueの時は、
foreachを評価する。

そうでない場合は、
$__stringer = htmlspecialchars($__stringer)
を評価して
!によってfalseと評価させるため、
foreachを評価させない。

また引数を参照渡しとしているため、
返り値は必要なし

@huuyafwww
Copy link
Author

活用方法としては、
__h($_POST);
__h($_GET);のように
リクエストbodyのすべてにサニタイズを行うような事象。

また$_POST$_GETグローバルスコープなため、
上記を実行した後にスコープ外でもサニタイズされたリクエストbodyのまま評価することが可能になる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment