ホームページ バックエンド開発 PHPチュートリアル CI がパーセント記号の最後の 2 桁を自動的に除外する問題の解決策 _PHP チュートリアル

CI がパーセント記号の最後の 2 桁を自動的に除外する問題の解決策 _PHP チュートリアル

Jul 13, 2016 am 10:34 AM
codeigniter

CodeIgniter によって作成された Web サイトに、コードを入力したいと思います:

リーリー

しかし、ライブラリに入った後、コードが次のようになっていることがわかりました

リーリー

オンライン環境とローカル環境の両方でテストを行った結果、最終的にCodeIgniterシステムの問題であることが確認されました。問題解決のプロセスと思考方法について話しましょう:

1. config.php の allowed_uri_chars は?

リーリー

stackoverflow で同様の質問がいくつか見つかりましたが、config.php の allowed_uri_chars を変更するだけという回答もありました。

そうですね...サンプル文字列をもう一度見てみると、「The URI you submitted has disallowed characters」が得られる理由は次のとおりです。

簡単な説明: アンパサンド & を許可文字リストに追加します

リーリー

試してみましたがうまくいかなかったので、$config['permitted_uri_chars']を適用したコードを探しました。

2. core/Input.phpの_clean_input_keys()関数に問題があるのでしょうか?

リーリー

この関数は $config['permitted_uri_chars'] を使用して投稿データを直接フィルタリングします。これが主な原因です。それを分離し、post $var = sprintf("%04d", 2); をテストした結果、結果は依然として $var = sprintf("%04d", 2); であることがわかりました。%04 はフィルタされていません。参照してください。注意深く探さなければなりません。

3. xssの防御機構ですか?

Stackoverflow 誰かがこの問題を完璧に解決した、それは xss clean のせいだと言いました。

:) くそー、URLDECODE、URI.php のコードを見ましたが、xss clean が機能しているので見逃していました。ありがとうございます。これですべてが完璧になりました。

そこで、core/security.php で xss_clean() 関数を見つけました。すべての関数本体コードをコメント アウトすると、入力では依然として %04 が除外されることがわかりますが、これは明らかに xss の問題ではありません。

4. 問題は _clean_input_data() 関数にあります

Input.php に戻り、_clean_input_data が _clean_input_keys に関連していることを確認します。

リーリー

そこで、_clean_input_data() の関数本体をコメントアウトしましたが、入力はフィルターされませんでした。スコープを絞り続けると、次のコードが問題を引き起こしていることがわかりました。

リーリー

5. 犯人はremove_invisible_characters()関数を発見しました

では、remove_invisible_characters() 関数とは何でしょうか?

この関数は core/Common.php にあり、私はそれを取り出しました:

リーリー

これらのコード行を見てください:

リーリー

明確にしておきますが、%0 と %1 で始まる 3 文字が除外されます。これをコメントアウトするだけで問題は解決します。

この問題を解決するための思考プロセス全体を記録します。

http://www.bkjia.com/PHPjc/752355.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752355.html技術記事 CodeIgniter で作成した Web サイトに $var = sprintf("%04d", 2); というコードを入力したいのですが、ライブラリに入った後のコードは $var = sprintf("d", 2); オンライン環境では、ローカル環境は...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CodeIgniter でカスタムミドルウェアを実装する方法 CodeIgniter でカスタムミドルウェアを実装する方法 Jul 29, 2023 am 10:53 AM

CodeIgniter でカスタム ミドルウェアを実装する方法 はじめに: 最新の Web 開発では、ミドルウェアがアプリケーションで重要な役割を果たします。これらは、リクエストがコントローラーに到達する前または後に、共有処理ロジックを実行するために使用できます。 CodeIgniter は、人気のある PHP フレームワークとして、ミドルウェアの使用もサポートしています。この記事では、CodeIgniter でカスタム ミドルウェアを実装する方法を紹介し、簡単なコード例を示します。ミドルウェアの概要: ミドルウェアは一種のリクエストです

CodeIgniter ミドルウェア: アプリケーションの応答性とページのレンダリングを高速化します。 CodeIgniter ミドルウェア: アプリケーションの応答性とページのレンダリングを高速化します。 Jul 28, 2023 pm 06:51 PM

CodeIgniter ミドルウェア: アプリケーションの応答性とページ レンダリングの高速化 概要: Web アプリケーションの複雑さと対話性が増大し続ける中、開発者はアプリケーションのパフォーマンスと応答性を向上させるために、より効率的でスケーラブルなソリューションを使用する必要があります。 CodeIgniter (CI) は、多くの便利な機能を提供する軽量の PHP ベースのフレームワークであり、その 1 つがミドルウェアです。ミドルウェアは、リクエストがコントローラーに到達する前または後に実行される一連のタスクです。この記事では使い方を紹介します

CodeIgniter フレームワークでデータベース クエリ ビルダー (Query Builder) を使用する方法 CodeIgniter フレームワークでデータベース クエリ ビルダー (Query Builder) を使用する方法 Jul 28, 2023 pm 11:13 PM

CodeIgniter フレームワークでデータベース クエリ ビルダー (QueryBuilder) を使用する方法の紹介: CodeIgniter は、開発者が Web アプリケーション開発を容易にするための強力なツールとライブラリを多数提供する軽量の PHP フレームワークです。最も印象的な機能の 1 つは、データベース クエリ ビルダー (QueryBuilder) です。これは、データベース クエリ ステートメントを構築および実行するための簡潔かつ強力な方法を提供します。この記事ではCoの使い方を紹介します。

PHP 開発: CodeIgniter を使用して MVC パターンと RESTful API を実装する PHP 開発: CodeIgniter を使用して MVC パターンと RESTful API を実装する Jun 16, 2023 am 08:09 AM

Web アプリケーションは進化し​​続けるため、アプリケーションをより迅速かつ効率的に開発することが重要です。また、RESTful API は Web アプリケーションで広く使用されているため、開発者は RESTful API の作成および実装方法を理解する必要があります。この記事では、CodeIgniter フレームワークを使用して MVC パターンと RESTful API を実装する方法について説明します。 MVC パターン MVC (Model-Vie) の概要

PHP フレームワーク CodeIgniter を使用して、便利なコミュニケーション サービスを提供するリアルタイム チャット アプリケーションを開発します。 PHP フレームワーク CodeIgniter を使用して、便利なコミュニケーション サービスを提供するリアルタイム チャット アプリケーションを開発します。 Jun 27, 2023 pm 02:49 PM

モバイル インターネットの発展に伴い、インスタント メッセージングの重要性と人気がますます高まっています。多くの企業にとって、ライブ チャットはコミュニケーション サービスに似ており、ビジネス上の問題を迅速かつ効果的に解決できる便利なコミュニケーション手段を提供します。これを踏まえて、この記事ではPHPフレームワークCodeIgniterを使ってリアルタイムチャットアプリケーションを開発する方法を紹介します。 CodeIgniter フレームワークを理解する CodeIgniter は、開発者を迅速に支援する一連のシンプルなツールとライブラリを提供する軽量の PHP フレームワークです。

PHPでCodeIgniter5フレームワークを使用するにはどうすればよいですか? PHPでCodeIgniter5フレームワークを使用するにはどうすればよいですか? Jun 01, 2023 am 11:21 AM

CodeIgniter は、MVC アーキテクチャを使用して迅速な開発をサポートし、一般的なタスクを簡素化する軽量の PHP フレームワークです。 CodeIgniter5 はフレームワークの最新バージョンであり、多くの新機能と改善点が提供されています。この記事では、CodeIgniter5 フレームワークを使用して簡単な Web アプリケーションを構築する方法を紹介します。ステップ 1: CodeIgniter5 をインストールする CodeIgniter5 のダウンロードとインストールは非常に簡単で、次の手順に従うだけです。 最新バージョンをダウンロードします。

CodeIgniter ミドルウェア: 安全なファイルのアップロードおよびダウンロード機能を提供します。 CodeIgniter ミドルウェア: 安全なファイルのアップロードおよびダウンロード機能を提供します。 Aug 01, 2023 pm 03:01 PM

CodeIgniter ミドルウェア: 安全なファイルのアップロードおよびダウンロード機能を提供します はじめに: Web アプリケーション開発のプロセスにおいて、ファイルのアップロードとダウンロードは非常に一般的な機能です。ただし、セキュリティ上の理由から、ファイルのアップロードとダウンロードの処理には追加のセキュリティ対策が必要になることがよくあります。 CodeIgniter は、開発者による安全で信頼性の高い Web アプリケーションの構築をサポートする豊富なツールとライブラリを提供する人気の PHP フレームワークです。この記事では、CodeIgniter ミドルウェアを使用して安全なファイルを実装する方法を紹介します。

PHP は構成管理に CodeIgniter\Config をどのように使用しますか? PHP は構成管理に CodeIgniter\Config をどのように使用しますか? Jun 02, 2023 pm 06:01 PM

1. CodeIgniter の概要 CodeIgniter は、Web 開発者に Web アプリケーションを構築するための高速かつ強力なツールを提供するように設計された軽量で包括的な PHP 開発フレームワークです。 MVC アーキテクチャ パターンを使用して迅速な開発と基本機能を実現し、さまざまなデータベースをサポートするオープンソース フレームワークです。 2. Config ライブラリの概要 Config ライブラリは CodeIgniter フレームワークのコンポーネントであり、コードの設定と管理に使用されます。 Config ライブラリには多くのものが含まれています

See all articles