2017-09-21 11 views
0

私はCodeigniter 3を使用しており、MY_Controllerのためにフォームの送信時にリダイレクトを使用することに問題がありました。基本的には、日付とテキストの検索フォームがあり、フォーム入力に基づくURIセグメントを使用してMY_Controllerでリダイレクトしていました。私。私のベースのウェブサイトのURLからフォームを送信すると、入力を処理し、mywebsite/search/from date/to date/text/searchテキストにリダイレクトします。論理がMY_Controllerにあるので、データは一度より多く処理され、失われていました。CodeIgniter redirect form jQuery経由での送信

jQueryを使用してリダイレクト文字列を作成してリダイレクトしても問題ありません。私はこれがセキュリティ上の影響を受けるかどうか、あるいは誰かがこのアプローチの問題を見ているかどうかを調べるだけです。フォーム

<script type="text/javascript"> 
    $("#do_search").click(function(e) { 
    e.preventDefault(); 
    var from_date = $(this).closest("form").find("input[name='from_date']").val(); 
    var to_date = $(this).closest("form").find("input[name='to_date']").val(); 
    var search_text = $(this).closest("form").find("input[name='search_text']").val(); 
    var first = window.location.pathname; 
    first.indexOf(1); 
    first.toLowerCase(); 
    first = first.split("/")[1]; 

    var redir_url = window.location.protocol + '//' + window.location.host + '/' + first + '/search/' + from_date + '/' + to_date; 

    if(search_text !== ''){ 
     redir_url = redir_url + '/text/' + search_text; 
    } 
    $('#search').attr('action', redir_url).submit(); 
    return false; 
    }); 
</script> 

を提出したURLは、MY_Controllerで処理されたセッション変数が維持され、URLが正しく解決に呼び出された

jQueryのスクリプト。私はCSRFと積極的な記録を使用していますので、これは安全なアプローチだと思いますが、あなたと専門家に確認したいと思っています。

答えて

0

フォーム入力から日付情報を取得し、そこからURLを作成するだけです。このアプローチについては何も不安はありません。

0

セキュリティ上の問題はないと思いますが、ユーザーがsearch_text入力に特殊文字を書き込むと問題が発生する可能性があります。投稿前に事前検証する必要があります

+0

ダニエル、私はJSに堪能ではありません。データが提出されると、PHP/Codeigniterの入力を検証しています。 JQueryの入力を確認するべきですか? – ReeseB

関連する問題