タグ

sqlに関するjoan9のブックマーク (24)

  • SQLインジェクション対策もれの責任を開発会社に問う判決

    ポイントは下記の通りです。 X社(原告)はセキュリティ対策について特に指示はしていなかった 損害賠償について個別契約に定める契約金額の範囲内とする損害賠償責任制限があった 当初システムはカード決済を外部委託し直接カード情報を扱っていなかった X社が「カード会社毎の決済金額を知りたい」とY社に依頼をして、その結果カード情報をいったんDBに保存する仕様となった(2010年1月29日) X社からの問い合わせに対してY社は、カード情報を保持しない方式に変更することが可能で、そのほうが安全となり、費用は20万円程度である旨を伝えた(2010年9月27日)が、その後X社は改良の指示をしなかった 以下の脆弱性その他が認められた システム管理機能のIDとパスワードが admin/password であった 個人情報が記載されたお問い合わせログファイルの閲覧が可能(ディレクトリリスティングと意図しないファイ

  • SQLでデータベーステーブルの縦・横変換

    2006年07月10日 クエリを思いつかなかった子のために。これはあくまでヒントだぞ。 以降の例では Oracle9iリリース2で説明しています。 データベースのテーブルには、何故か無駄に横長のものがあったりします。 ホスト時代のデータセットイメージをそのままテーブルフォーマットにしちゃったようなやつですね。項目名に「FILLER1」とか名前がついている( ̄▽ ̄; こんなテーブルがあるとします。 SQL> DESC 売上ランキング横; 名前 NULL? 型 ---------------------------- -------- -------------------------- 売上年 VARCHAR2(4) 1位製品 VARCHAR2(10) 1位売上 NUMBER(5) 2位製品 VARCHAR2(10) 2位売上 NUMBER(5) 3位製品 VARCHAR2(10) 3位売上

    SQLでデータベーステーブルの縦・横変換
    joan9
    joan9 2014/05/09
    テーブル横縦変換
  • PDOでの数値列の扱いにはワナがいっぱい — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    PHP Advent Calendar 2013 in Adventarの15日目です。 みなさん、史上空前のSQLのエスケープブームの中、いかがお過ごしでしょうか? なお、「我が社のプリペアドステートメントは大丈夫なのか?」という疑問をお持ちの方には、以下の記事をお薦めします。 漢(オトコ)のコンピュータ道: SQLインジェクション対策に正解はない さて、あまりにエスケープが人気なので、プリペアドステートメントにもう少しがんばってもらいたい気がしました。そこで、今日は、以下の徳丸さんの大変に力作な記事に関連した、PDOでのプリペアドステートメントについての記事を書いてみたいと思います。 PHPセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみた | 徳丸浩の日記 一応、今でこそPDOは普通に使われていますが、細かい点までみていくと、仕様なのかバグなのか、あるいはこ

    joan9
    joan9 2013/12/17
  • SQLの暗黙の型変換はワナがいっぱい

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2009年9月24日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり このエントリでは、SQLにおいて「暗黙の型変換」を使うべきでない理由として、具体的な「ワナ」をいくつか紹介します。 数値項目に対するSQLインジェクション対策のまとめにて説明したように、RDBの数値型の列に対してSQLインジェクション対策をする方法として、以下の三種類が知られています。 バインド機構を用いる パラメータの数値としての妥当性確認を行う パラメータを文字列リテラルとしてエスケープする このうち、方法3を使うべきでない説明の補足です。具体的には、方法3には、「暗黙の型変換」が発生しますが、それが思わ

    joan9
    joan9 2013/12/17
  • 複合主キーを避けるべき理由 - 虎塚

    データベース設計の話をしていて、「連番の主キーは業務上意味のないデータだから、テーブルに持たせるのはムダだ。複合主キーにするべき」という意見を聞く機会がありました。 脊髄反射で「ないわー」と思ったものの、理由を上手く説明できなかったので、改めて考えてみました。 その結果、次のような結論に至りました。 単一の連番カラムによる主キーと、複合カラムによる主キーとで迷ったら 実装をシンプルにし、業務変更の影響範囲を小さくするために、複合主キーを避ける というわけで、調べたことや考えたことをメモしておきます。# 間違っている部分があれば、教えていただけると嬉しいです。 (2011/07/25 追記)複合主キーとサロゲートキーについては、要件やシステムに依存して多様な判断がありうると思います。にもかかわらず、「避けるべき」というタイトルにしたのは極端でした。申し訳ありません。ご指摘下さった皆さん、あり

    複合主キーを避けるべき理由 - 虎塚
    joan9
    joan9 2013/07/22
  • Create unique constraint with null columns

    I have a table with this layout: CREATE TABLE Favorites ( FavoriteId uuid NOT NULL PRIMARY KEY, UserId uuid NOT NULL, RecipeId uuid NOT NULL, MenuId uuid ); I want to create a unique constraint similar to this: ALTER TABLE Favorites ADD CONSTRAINT Favorites_UniqueFavorite UNIQUE(UserId, MenuId, RecipeId); However, this will allow multiple rows with the same (UserId, RecipeId), if MenuId IS NULL. I

    Create unique constraint with null columns
    joan9
    joan9 2013/07/22
    nullを含む複合インデックスの作り方
  • SQLEditor for Mac OS X

    Apple Silicon Native Intel Mac x86-64 Native Beautiful user interface Dark Mode Support Design Report generator Javascript plugin system Faster and more efficient And no subscription! SQLEditor makes database design easier Add tables and columns, indexes and foreign keys with the click of a mouse. See everything that you've created displayed in front of you. You can zoom out to see an overview of

    joan9
    joan9 2012/03/11
  • Ring

    Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や

    joan9
    joan9 2011/02/25
    フレームワーク関係なくない?
  • 「NoSQL」を上回る性能を目指す次世代型高速SQLデータベース「VoltDB」登場 | OSDN Magazine

    ベンチャー企業の米VoltDBは5月25日(米国時間)、オープンソースのデータベースシステム「VoltDB 1.0.1」をリリースした。高速、拡張性、ACID遵守などを特徴とする次世代DBMSとしている。 VoltDBは「Postgres」「Ingres」などのデータベースプロジェクトを共同で創始したMichael Stonebraker氏が設計したもので、Stonebraker氏が非常勤教授を務めるマサチューセッツ工科大(MIT)、ブラウン大学、イェール大学、HP Labsの共同研究「H-Store」がベースとなっている。 VoltDBは豊富なメモリやマルチコアCPUを備えたシステムに最適化されており、データを分散させてメモリ内に配置することで飛躍的に性能を改善しているという。データベースエンジンはマルチスレッドで動作し、データは分割されて各スレッドに配置される。それぞれのスレッドはロッ

    「NoSQL」を上回る性能を目指す次世代型高速SQLデータベース「VoltDB」登場 | OSDN Magazine
    joan9
    joan9 2010/05/28
  • SQL::Abstract を使い倒す - JPerl Advent Calendar 2009

    SQL::Abstract を使い倒す - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 今更、携帯小説にハマってる id:ZIGOROu です。モバゲーのオンライン3って小説が面白いですよ! 今日は SQL::Abstract を使い倒すと言うネタで行きます。 まず超基編 簡単な SQL 文の生成から始めましょう。 use strict; use warnings; use Data::Dump qw(dump); use SQL::Abstract; my $s = SQL::Abstract->new; my ($stmt, @bind) = $s->select( "activity", # tables [qw/id title sender created_on/], # columns

    joan9
    joan9 2009/12/20
  • emacs 上で SQL をそれなりに整形する - わからん

    動作サンプル ▼ こんな感じのログバッファで ▼ 確認したい SQL をリージョン選択し、M-x sqlf RET すると ▼ 整形される。必要ならアンドゥする。 説明 symfony.el で emacs の一時バッファで SQL を含むログを監視していて欲しかったので書いた、簡易 SQL 整形関数です。SQL のキーワードのあとに改行とスペースを挿入するしくみです。symfony.el 以外でのログ監視ができる拡張には詳しくないけど、需要がある気がします。 コード (defun sqlf (start end) "リージョンのSQLを整形する" (interactive "r") (let ((case-fold-search t)) (let* ((s (buffer-substring-no-properties start end)) (s (replace-regexp-in-

    emacs 上で SQL をそれなりに整形する - わからん
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 【YQL 速攻レビュー】米 Yahoo! が SQL っぽく色んなデータを取ってこれるAPIを出した - てっく煮ブログ

    Yahoo!Yahoo! Pipes みたいに自由度が高くて、またちょっと毛色が違うサービスが出てきた。題して、Yahoo! Query Language。YQL と呼ぶようだ。SQL 風の言語を REST で投げて、結果を XML や JSON で受け取ることができる。具体的にやってみないと分かりにくいので、とりあえず試してみた。RSS からデータ取得YQL を使って RSS から最新のタイトル10個を取ってきてみる。こんな YQL になるらしい。 select title from rss where url='http://d.hatena.ne.jp/nitoyon/rss' rss テーブルに対して select を発行している。実際にこの YQL を試すには YQL 用の console を利用するとよい。(※要ログイン)console の左上に YQL を入力して

  • Kazuho@Cybozu Labs: フレンド・タイムライン処理の原理と実践

    « MySQL のクエリ最適化における、もうひとつの検証方法 | メイン | MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話 » 2008年06月09日 フレンド・タイムライン処理の原理と実践 MySQL (InnoDB) に直接アクセスしてタイムライン処理を高速化する話に続きます。 Twitter が注目されるようになって久しい今日この頃ですが、友人の投稿を時系列に並べて表示する、というのは、Twitter に限らず Mixi の「マイミクシィ最新日記」やはてなブックマークの「お気に入り」等、ソーシャルなウェブサービスにおいては一般的な手法です。ですが、この処理 (以下「フレンド・タイムライン」と呼ぶ) は、一見簡単そうに見えて、実装には様々な困難が伴います。記事では、「フレンド・タイムライン」を実現する、プッシュ型とプル型の二種類の手法について、その原

    joan9
    joan9 2008/06/10
    > 「フレンド・タイムライン」を実現する、プッシュ型とプル型の二種類の手法について、その原理的な特徴と問題、および実践的なテクニックについて説明したいと思います。
  • 複文が利用できるデータベースの調査: SQL Serverが狙われるには理由がある - 徳丸浩の日記(2008-05-02)

    _SQL Serverが狙われるには理由がある SQLインジェクションを利用したWebサイトの改ざん事件が頻発している。標的となったサイトの多くがIIS(ASP)とSQL Serverの組み合わせを利用していることから、今回の攻撃がIISやSQL Serverの脆弱性を利用したものだと言う報道があるらしい。 これに対して、マイクロソフトが反論している。 「SQLインジェクション攻撃とIISは無関係」とMicrosoft しかしMicrosoftセキュリティ対策センター(MSRC)のブログで、今回のWebサーバ攻撃では「未知の脆弱性や新しい脆弱性は悪用されていないことが当社の調査で分かった」と説明。攻撃はIISやSQL Serverの脆弱性を突いたものではなく、アドバイザリー951306の脆弱性とも無関係だとした。 これはまぁ、もっともな内容だと思う。しかし、疑問は残る。なぜ、IISとSQ

  • Filter::SQL 作った - kazuhoのメモ置き場

    please see: Kazuho@Cybozu Labs: Perl で埋め込み SQL を使って楽をする話 http://coderepos.org/share/browser/lang/perl/Filter-SQL こんな感じで書ける。 use DBI; use Filter::SQL; Filter::SQL->dbh(DBI->connect('dbi:mysql:test;user=root')) or die DBI->errstr; SQL DROP TABLE IF EXISTS t;; SQL CREATE TABLE T (v int not null);; for (my $n = 0; $n < 10; $n++) { INSERT INTO T (v) VALUES ($n);; } foreach my $row (SELECT * FROM t;) {

    Filter::SQL 作った - kazuhoのメモ置き場
    joan9
    joan9 2008/04/20
  • Kazuho@Cybozu Labs: Perl で埋め込み SQL を使って楽をする話

    « Japanize for IE バージョンアップのおしらせ | メイン | Filter::SQL を使って掲示板を書いてみました » 2008年04月16日 Perl で埋め込み SQL を使って楽をする話 DSL (ドメイン固有言語) は、プログラム開発の生産性を向上させる有力な手段です。そして、よく使われる DSL の代表例が正規表現と SQL だと思うのですが、前者に比して後者を嫌いな人が多いようです。なぜだろうと思ってつぶやいたところ、「SQL はリテラルじゃないから!」という答えが tokuhirom さんから返ってきました。そういえば例えば Pro*C のように C で Embedded SQL というのは良く聞く話なのに、Perl では同様の例がないような感じだったので、作ってみました。Perl で埋め込み SQL を実現するソースフィルター Filter::SQL

  • Google Spreadsheets を簡易 SQL DB に!「Google Visualization API」 - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 皆さん、 Google Docs のガジェット機能はもう使ってみましたでしょうか。データをさまざまな方法で可視化するガジェットをシート上に配置できるというもので、このガジェットは自作することもできます(iGoogle ガジェットベース)。その際にスプレッドシートの情報を取得するために使われるのが、日ご紹介する Google Visualization API

  • SQLの論理形式 - ミックのブログ

    新人の子たちに SQL を教えてきました。GROUP BY のキーに指定していない列名をSELECT句に書いてはいけない、という禁則の意味がよく理解できずに困っている例を多く見かけました。特に、GROUP BY句で列にCASE式を使った場合、もはやそれはキーとして元の列とは同じでありえない、というところの理解が難しかったよう。 一般に、GROUP BY句を指定したら、SELECT句に書ける要素は三種類に制限されます。 GROUP BYで指定した集約キー 集約関数 定数 そういえば私も初心者のころ、この制限の必然性が分からなくて悩んだ記憶があります。GROUP BYがパーティション・カットの機能を果たす、ということをイメージできれば、この種の疑問は解消するのですが、それが身体感覚として身につくのはちょっとかかりそう。 SQL を最初に学ぶとき、このあたりで混乱しやすいのは、きっとSQLを書く

    SQLの論理形式 - ミックのブログ
    joan9
    joan9 2007/10/10
  • Matzにっき(2007-08-31) ruby->sql converter

    << 2007/08/ 1 1. [言語] 連載:C# 2.0入門 第3回 新しい繰り返しのスタイル − yield return文とForEachメソッド − @IT 2. [Ruby] Shoes, a Tiny Toolkit for Making Browser-like Things 2 1. [OSS] Download Hadoop at OSCON (Yahoo! Developer Network blog) 2. ウェブキャリアでWebエンジニアとしてのキャリアを磨こう 株式会社ウェブキャリア 3. 先達の業界に学ぶプロジェクトマネジメント 第1回 20年は遅れているITプロマネ:ITpro 4. 横浜 3 1. [OSS] 特別講演:「オープンソース・ソフトウェア開発思想とリアルな地域ネットワークの連 2. [Ruby] トークセッション-5:「世界に広がるオブジェク

    joan9
    joan9 2007/09/12