[PHP-dev 1352] Re: 変数の追跡
ASANO Satoshi
satosh-a @ is.naist.jp
2006年 11月 13日 (月) 20:42:31 JST
浅野です。
返信ありがとうございます。
とりあえず教えていただいた部分を消化します。
Seiji Masugata wrote:
> こんにちわ、桝形です。
>
>
>>はじめまして、浅野と申します。
>>
>>POSTやGET、Cookieなどの外部入力に基づく変数を追跡してperlのtaint modeのような
>>チェックを行う機構を自前で開発したいと思っています。
>
>
> 素敵な機能を開発されようとしてますね。頑張って下さい。
>
>
>
>>まず変数の追跡をするために、変数領域の確保や値の受け渡しなどの処理を行うコードを
>>読みたいのですが、どこからよめばいいでしょうか。
>
>
> 自分がやるなら、以下辺りを手始めに読みます。
> というか、先程このメールを読んでソースを見てました。(w
>
>
> http://cvs.php.net/viewvc.cgi/php-src/main/php_variables.c?view=log&pathrev=PHP_5_2
> SAPI_API SAPI_POST_HANDLER_FUNC(php_std_post_handler)
> SAPI_API SAPI_TREAT_DATA_FUNC(php_default_treat_data)
>
> http://cvs.php.net/viewvc.cgi/php-src/main/SAPI.h?view=log&pathrev=PHP_5_2
> #define SAPI_POST_READER_FUNC(post_reader) void post_reader(TSRMLS_D)
> #define SAPI_POST_HANDLER_FUNC(post_handler) void post_handler(char *content_type_dup, void *arg TSRMLS_DC)
> #define SAPI_TREAT_DATA_FUNC(treat_data) void treat_data(int arg, char *str, zval* destArray TSRMLS_DC)
>
> http://cvs.php.net/viewvc.cgi/php-src/main/SAPI.c?view=log&pathrev=PHP_5_2
> SAPI_API SAPI_POST_READER_FUNC(sapi_read_standard_form_data)
>
> http://cvs.php.net/viewvc.cgi/php-src/main/rfc1867.c?view=log&pathrev=PHP_5_2
> SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler)
>
>
> parse_strやimport_request_variables関数も同じハンドラを使うので、かなり
> ヤヤこしい事になってますが、SAPI_TREAT_DATA_FUNCで登録されている関数が
> 処理の実体だと思います。
>
> 各種配列への登録部分は、php_variables.cのphp_register_variable_safe関数
> なのかと。。。
>
>
> mbstringやfilter拡張モジュールはオマケみたいなものですが、動作的には
> 参考になると思います。
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mb_gpc.c?view=log&pathrev=PHP_5_2
> SAPI_POST_HANDLER_FUNC(php_mb_post_handler)
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mb_gpc.h?view=log&pathrev=PHP_5_2
> MBSTRING_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data);
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/filter/?pathrev=PHP_5_2
> http://cvs.php.net/viewvc.cgi/php-src/ext/filter/docs/filter.txt?view=markup&pathrev=PHP_5_2
> http://cvs.php.net/viewvc.cgi/php-src/README.input_filter?view=markup&pathrev=PHP_5_2
>
> 全然、整理できてなくてスミマセン。。。
>
PHP-dev メーリングリストの案内