マイクロチャネルのPHPコンテンツ[セキュリティ]「のテキスト、画像」チェックコード

追加コンテンツ:

図1に示すように、マイクロチャネル文書https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.imgSecCheck.html 
2、PHP5.4、json_encode関数、新しいですパラメータオプションは、JSON_UNESCAPED_UNICODE、中国はコンテンツをコードしない出力であります

最初の部分:[テキスト]違法なチェックサム

ファイル:インデックス
 
/ **
 *マイクロチャンネル- [テキスト]違反が検出された
 *ミックス@return
 * /
(公衆test_wx_check機能)
{
    $ PARAM = 'フライShendingする辰砂を発生';
    $ TYPE = 1;
    $結果=の$ this - > wx_check($ PARAM、型$);
    エコー'<PRE>';のvar_dump($結果);出口();
}

パートII:[画像]チェックコンプライアンスチェック

文件:インデックス

 A、表单部分 
<フォームアクション= "upload_file.php" METHOD = "POST"
のenctype = "マルチパート/フォームデータ">
    <= "ファイル"のラベル>ファイル名</ラベル>
    の<input type =」ファイル」名= "uploadImg" ID = "uploadImg" />
    <br />
    <入力タイプ= "提出"名前= "提出"値= "送信" />
</フォーム> B、后端部分 
/ **
 *微信-违规【图片】检测
 * @return混合
 * /
パブリック関数test_wx_check()
{
    $ PARAM = $ _file [ 'uploadImg']。
    $タイプ= 1; 
    $結果=の$ this - > wx_check($ PARAM、$タイプ)。
    エコー'<前>'; var_dump($結果);の出口(); 
}


パートIII:コアコードセクション

ファイル:インデックス
 
/ **
 *マイクロチャンネル- [違反テキスト/画像検出]
 * @param $ PARAM
 *ミックス@return
 * /
パブリック関数wx_check($ PARAM、$ = 1型)
{
    //検証パラメータ、直接リターン空偽の
    IF($ PARAM ||タイプ$!){
        falseに戻り;
    }

    //パラメータソート処理
    IF(タイプ== $ 1){
        $データ= [ 'コンテンツ' => $ PARAM];
    }そうIF($タイプ2 ==){
        $データ= [ 'メディア' => $ PARAM];
    }

    //取得access_tokenは
    の$ this - >負荷- > -サービス( 'order_service');
    $ access_tokenは=の$ this - > order_service-> get_access_token() ;

    //空にすることはできませaccess_tokenは
    IF($ access_tokenは!){
        リターンはfalse;
    }

    //要求アドレス
    の$ this - >ロード- >設定( '辞書/ dict_wx_check'); 
    $ CONFIG =の$ this - > CONFIG->項目( 'wx_check_config'); 
    ?URL = $($ == $の設定を入力1 [。 '?access_tokenは='。 'CONTENT_URL'] :. $ [ 'img_url'])Configがaccess_tokenはを$; 

    //データを要求する
    ; $結果=の$ this - > curl_post_weixin(URL $、$データ)

    //反転が結果JSONの
    リターンを($ trueに、結果)json_decodeの; 
} 

/ ** 
 *マイクロチャネルモードにcURLのPOSTデータ
 * @param列$ URL要求アドレス
 * @param配列$データ伝送データが
 @returnミックス* 
 * @author LiuDongrangを
 * @time 2019/05 / 19 
 * / 
プライベート関数curl_post_weixin(URL $、$データ)
{ 
    IF(URL && $ COUNT($データ)){
        $ヘッダ= [ 'Content-Typeの:アプリケーション/ JSON']; 
        $ CH = curl_init(); 
        ますcurl_setopt($ chの、CURLOPT_HTTPHEADER、$ヘッダ)。//关键点
        ますcurl_setopt($ chの、CURLOPT_URL、$ URL); 
        ますcurl_setopt($ chの、CURLOPT_RETURNTRANSFER、1); 
        ますcurl_setopt($ chの、CURLOPT_POST、1); 
        ますcurl_setopt($ chの、CURLOPT_POSTFIELDS、json_encode($データ、JSON_UNESCAPED_UNICODE)); // 【*关键点】 
        $ RES = curl_exec($ chの); 
        curl_close($ chの); 
        $ RESを返します。
    } 
} 文件:order_service 
/ ** 
 *获取トークン
 * @author LiuDongrang 
 * @time 2019年7月5日
 * /


 
パブリック関数take_access_token()
{ 
    $ access_tokenは=の$ this - > get_access_token(); 
    //获取存入のRedis
    $ this-> load-> libraryメソッド( 'dbredis'); 
    の$ this - > dbredis->セット( 'redis_access_token'、$ access_tokenは); 
    リターンの$ this - > dbredis-> GET( 'redis_access_token'); 
} 

/ ** 
 *获取access_tokenは值
 * @return列$ access_tokenは
 * @author LiuDongrang 
 * @time 2019年5月19日
 * / 
get_access_tokenパブリック関数()
{ 
    $のAppConfig = [ 
        'APP_ID' => 'wxsdfdsfsdfsdfdfdefc'、
        '秘密' => 'ecsdfsdfdfuyttrrlo9887jfa7d29106'  
    ]。
    $ URL = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appConfig [' APP_ID ']。' &秘密= '$のAppConfig ['秘密']; 
    ますcurl_setopt ($ chの、CURLOPT_URL、$ URL ); // 取得したデータのURL 
    ますcurl_setopt($ CH、CURLOPT_RETURNTRANSFERは,. 1); //ストリームファイルとして返される情報を取得
    しますcurl_setopt($ chの、CURLOPT_SSL_VERIFYPEER、偽の ); // ホップ証明書の検証
    ますcurl_setopt($ chの、CURLOPT_SSL_VERIFYHOST、偽 ); //は、 SSL暗号化証明書をチェックしている
    $ = json_decodeの出力(curl_exec(CH $)); 
    $ $出力- access_tokenは=> access_tokenは、
    curl_close($ CH); 
    access_tokenはリターンを$; 
} ファイル:辞書/ dict_wx_check 
/ ** 
 * [マイクロチャネルグラフィックチェックサム違反] -設定ファイル
 * / 
/ **グラフィック検証要求アドレス* / 
$ CONFIG [ 'wx_check_config'] = [



 
    => 'https://api.weixin.qq.com/wxa/msg_sec_check' 'CONTENT_URL' 'img_url' => 'https://api.weixin.qq.com/wxa/img_sec_check' 
]。

締結:

    グラフィックコンテンツ検証(法学、関係する政府は)任意の難易度を持っていない、しかし、注意を払う必要があります!
    画像パラメータのマイクロチャネル要件がメディアフォーマットがフォームデータで終了ピクチャこの検査は、したがって、フォーム特性はENCTYPE =「マルチパート/フォームデータを有していなければならない 」 、プロンプト「改ざん」場合そうでない場合、試験が報告され覚えておいてください!
    このテキストを確認し、キーポイントは、コンテンツの内容であること、送信時間のためにJSON形式に変換し、この機能をjson_encodeがあり、それは「JSON_UNESCAPED_UNICODE」このパラメータを追加する必要があり、そうでない場合は、それらの敏感な言葉は、単純に測定しません!これはなぜでしょうか?のでjson_encodeは中国に対処する上で、中国が同様の「\ uは****」読めないフォーマットにエンコードされたマイクロチャネルは、受信端だから、当然のことながら、敏感な単語をチェックし、そのような文字の集まりですアップ!そしてJSON_UNESCAPED_UNICODEは、このパラメータ、追加json_encode関数、すべての漢字は、出力され、あなたが来て機密性の高いコンテンツをフィルタリングすることができますのでこと、!
公開された59元の記事 ウォンの賞賛2 ビュー5582

おすすめ

転載: blog.csdn.net/LDR1109/article/details/101221187