PHPユーザー入力安全フィルタリングと注入攻撃検出
19346 ワード
ThinkPHPより抜粋
PHP検出SQL注入攻撃コード JAvaファクトリモード
3213213333332132
java ちゅうしょうこうじょう
nginx周波数制限+pythonテスト
ronin47
nginx周波数python
JAvaスレッドとスレッドプールの使用
dyy_gusi
ThreadPool thread Runnable timer
Linux
171815164
linux
Tomcat JDBC Connection Pool
g21121
Connection
コードを叩く少しの考え
永夜-オーロラ
java エッセイ 感想
jvm命令セット
プログラマーはどうやって作ったの?
jvm命令セット
Oracle文字セットの表示クエリーとOracle文字セットの設定変更
aijuans
oracle
アルファベットで分類:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z その他
トップページ -
私たちについて -
構内検索 -
Sitemap -
権利侵害苦情
著作権すべてのIT知識ベースCopyRight© 2000-2050 IT知識ベースIT 610.com , All Rights Reserved.
京ICP備09083238号
/**
*
* @param array $data
* @param string|false $name
* @param mixed $default
* @param string|array $filter
* @return mixed
*/
function input($data = [], $name = '', $default = null, $filter = '')
{
$name = (string) $name;
if (is_array($data)) {
array_walk_recursive($data, 'filterValue', $filter);
reset($data);
} else {
filterValue($data, $name, $filter);
}
return $data;
}
/**
*
* @param mixed $value
* @param mixed $key
* @param array $filters +
* @return mixed
*/
function filterValue(&$value, $key, $filters)
{
$default = array_pop($filters);
foreach ($filters as $filter) {
if (is_callable($filter)) {
//
$value = call_user_func($filter, $value);
} elseif (is_scalar($value)) {
if (false !== strpos($filter, '/')) {
//
if (!preg_match($filter, $value)) {
//
$value = $default;
break;
}
} elseif (!empty($filter)) {
// filter , filter_var
// filter , filter_id id
$value = filter_var($value, is_int($filter) ? $filter : filter_id($filter));
if (false === $value) {
$value = $default;
break;
}
}
}
}
return filterExp($value);
}
/**
*
* @param string $value
* @return void
*/
function filterExp(&$value)
{
//
if (is_string($value) && preg_match('/^(EXP|NEQ|GT|EGT|LT|ELT|OR|XOR|LIKE|NOTLIKE|NOT LIKE|NOT BETWEEN|NOTBETWEEN|BETWEEN|NOTIN|NOT IN|IN)$/i', $value)) {
$value .= ' ';
}
// TODO
}
/**
*
* @param string $data
* @param string $type
* @return mixed
*/
function typeCast(&$data, $type)
{
switch (strtolower($type)) {
//
case 'a':
$data = (array) $data;
break;
//
case 'd':
$data = (int) $data;
break;
//
case 'f':
$data = (float) $data;
break;
//
case 'b':
$data = (boolean) $data;
break;
//
case 's':
default:
if (is_scalar($data)) {
$data = (string) $data;
} else {
throw new InvalidArgumentException('variable type error:' . gettype($data));
}
}
}
PHP検出SQL注入攻撃コード
//
function filter_injection(&$request)
{
$pattern = "/(select[\s])|(insert[\s])|(update[\s])|(delete[\s])|(from[\s])|(where[\s])|(truncate[\s])|(drop[\s])|(table[\s])|(grant[\s])|(load_file[\s])|(outfile[\s])/i";
foreach($request as $k=>$v)
{
if(preg_match($pattern,$k,$match))
{
die("SQL Injection denied!");
}
if(is_array($v))
{
filter_injection($request[$k]);
}
else
{
if(preg_match($pattern,$v,$match))
{
die("SQL Injection denied!");
}
}
}
}
JavaScript SQL :
<span style="color:#0000ff;">var</span> url =<span style="color:#000000;"> location.search;
</span><span style="color:#0000ff;">var</span> re=/^\?(.*)(select%20|insert%20|delete%20from%20|drop%20table|update%20truncate%20)(.*)$/<span style="color:#000000;">gi;
</span><span style="color:#0000ff;">var</span> e =<span style="color:#000000;"> re.test(url);
</span><span style="color:#0000ff;">if</span><span style="color:#000000;">(e) {
alert(</span>" ~"<span style="color:#000000;">);
}
</span><script></pre>
</div>
<p> </p>
<table border="0">
<tbody>
<tr>
<td> <p style="text-align:left;line-height:30px;"> : - - (CC BY-NC-SA 3.0 CN) , 。<br> :PHP <br> :http://www.cnblogs.com/sochishun/p/8459562.html<br> :SoChishun ( :14507247#qq.com | :http://www.cnblogs.com/sochishun/)<br> :2018 2 22 </p> </td>
</tr>
</tbody>
</table>
</div>
<p> :https://www.cnblogs.com/sochishun/p/8459562.html</p>
</div>
</div>
</div>
</div>
</div>
<!--PC WAP -->
<div id="SOHUCS" sid="1291780102765486080"></div>
<script type="text/javascript" src="/views/front/js/chanyan.js">
興味があるかもしれません3213213333332132
java ちゅうしょうこうじょう
ronin47
nginx周波数python
dyy_gusi
ThreadPool thread Runnable timer
171815164
linux
g21121
Connection
永夜-オーロラ
java エッセイ 感想
プログラマーはどうやって作ったの?
jvm命令セット
aijuans
oracle
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z その他
トップページ -
私たちについて -
構内検索 -
Sitemap -
権利侵害苦情
著作権すべてのIT知識ベースCopyRight© 2000-2050 IT知識ベースIT 610.com , All Rights Reserved.
京ICP備09083238号