meicolorful 2012-11-10 01:50:24

[PHP] 俺JavaScriptでDB更新できるんだぜ(キリッ     いやいや違うから このエントリーをはてなブックマークに追加

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

運用中コードを覗いて見つけて大爆笑してました。

JavaScriptからPHPを呼び出しているようです(項目名はぼかしています) これdrop tableとか渡したら。。。怖くて試していません。

// JavaScript
var ins = "insert into xxx(v1, v2, v3) values('"+v1+"','"+v2+"',null)";
var someArr = ["a","b","c"];
$.ajax({
  type: "POST",
  url: "update.php",
  data: { p1: ins, p2: someArr }
});


//----------------------


// update.php
<?php

  require("common.php.inc");

  $db = new PDO("DBへのパス");

  try {
    $sql = $_REQUEST['p1'];
    $db->exec("begin tran");
    $db->exec($sql);

    for ($i=0; $i<count($_REQUEST['p2']); $i++) {
       ...何かの処理に失敗したら$errflgを1にする
    }

    if ($errflg != 1) {
      $db->exec("commit");
    } else {
      $db->exec("rollback");
    }
  } catch (Exception $e) {
    $db->exec("rollback");
    exit(1);
  }

?>

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(9)

#1 milkyholmes0331 2012-11-10 02:00:25  

脆弱性しかなかった

#2 ekykwan 2012-11-10 07:37:44  

もはやウンコを越えた何か

#3 math_neko 2012-11-12 20:17:05  

ソースがクソである以前の何かだな

#4 johna1203 2012-12-24 18:15:50  

warning! 怖いなこのコード!

#5 m_shige1979 2012-12-29 10:56:56  

きっとあれだ、insertしかできないような権限しかないはずだきっと。きっと・・・

#6 InternalServerE 2012-12-29 18:54:54  

insertだけならセキュリティリスクがない、とでも?

#7 nullshooter2 2013-02-24 04:52:23  

include, require, use等の命令で取り込むためのインクルードファイル名に「.inc」「.pm」等、標準ではWebサーバ(ソフトウェア)やWebアプリケーションサーバがスクリプトとして認識しない拡張子をもたせている。これらのインクルードファイルはURLさえ見当がつけばインターネットから閲覧できるおそれがある http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/401.html

#8 17_daiki 2013-05-11 08:56:33  

危険すぎる

#9 Jenejis 2016-06-16 14:22:28  

専門学校でやったのと同じだ、、、 なにも考えてなかったけど脆弱性の塊なのな。

コメント投稿には、twitter認証が必要です。

Twitter認証

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

[Java] is禁止令

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

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

// Mod yamada Start

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

鑑賞する »

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

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

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

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

鑑賞する »

[C#] コーディング時最適化

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

最適化の効いた良いコードだと思います。 ...

static void Main() {
    Console.WriteL...

鑑賞する »