jkr_2255 2013-03-23 04:21:15

[PHP] 必要な情報量以上に過剰な引数 このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

SQLインジェクションは、やってしまいがちな問題ではありますが、想像の斜め上なところで問題を起こしていたコードがありました。

function show_unko(){
    $dir=$_GET['dir'];
    $result=get_unko($dir);

    //この後に$resultを使って表示処理
}

function get_unko($dir){

    $sql="SELECT id,unko,kuso FROM unko_tbl WHERE (中略) ORDER BY id $dir ";

    //この後に$sqlを使ったSQL呼び出し
}

コメント(4)

#1 keiichiroh 2013-03-23 15:19:27  

PHPしらんけどUNIX系のスクリプトなら"$var"で変数展開されるのはお家芸の表記だから、SQLインジェクションが発生するのは普通に想像付く。他のどこらへんが問題なのか分からない・・・誰か教えて。

#2 Miraranran 2013-03-25 13:35:13  

わかんない...変数のスコープは問題なし。""内の変数は展開される。dirはASCかDESC以外はアウトだけど値チェックしなかったら当然インジェクション可。もしかしてdirが空=ソートしない場合を想定してない? もしくは全部関数内で実行してもなにも起こらないのが最大のオチ?

#3 m_shige1979 2013-03-29 01:13:20  

$dirは単純につけなくても動くんじゃね 前の処理で$_GETからとっているのもちょっときになるけど

#4 sharo0331 2013-06-28 03:33:08  

$_GETから取得した値をDBで動かすってわけだから、かなり危険な脆弱性ってことじゃないかな


このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] is禁止令

このエントリーをはてなブックマークに追加

ウンコードの趣旨とは違い、レビューで指摘...

// Mod yamada Start

// 一般的に考えて真偽値を返すメ...

鑑賞する »

[Java] 内部的にunicodeだから日本語つかえ...

このエントリーをはてなブックマークに追加

これを書いた先輩に「英語で書きましょうよ...

class 会員 {
    private int 会員番号;
    p...

鑑賞する »

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »