はてなキーワード: XSSとは
百人以上いるんでは
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20250911183702# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaMKYQAAKCRBwMdsubs4+ SAAKAP4vgw5OMmNjKbIVm16KSwcVCy/zRu7NaB38hV2rqQMkZwD8Cqwq5HzNmtim XsS+HbomKxw9HKxXoCDZ86l0DPE//Ao= =fxxF -----END PGP SIGNATURE-----
https://anond.hatelabo.jp/20250630114221 https://anond.hatelabo.jp/20250626125317 https://anond.hatelabo.jp/20250627100609 https://anond.hatelabo.jp/20250628122821
AI技術を批判する記事がバズりまくってるが、それに対して凄い数の批判がいってる、だけど肝心の批判は個人攻撃めいていて、どれも技術的な部分はふわふわした物言いなので
どれだけ技術的にまったく使い物にならないかを、技術面から3つ理由を上げようと思う、これを見れば、確かにAIってそんなもんじゃないな、って正しい理解が進むと思う、と同時に、
ネットでAIを擁護したり喧伝してる人間で誰一人、エンジニアを自称したりしてる奴らでさえAIを理解してる人間がゼロっていうのがわかると思う
ちなみに、IT技術を全然知らない増田向けに技術的な部分は補足説明を入れているので、ちょっと長くなってるかもしれない
LLMがわかっていない!と喚いてる当人たちも上で言った通り、LLMっていうのが理解できてないの丸わかりなので、ここでまずLLM「大規模言語モデル」とは何かを簡単に説明しよう
生成AI(特にChatGPTのような大規模言語モデル、LLM)というのは「文脈に最もふさわしい次の単語を予測する」」という統計的タスクを行っている、これがLLMだ
「飲みます」→90%の確率 「買いました」→7% 「投げました」→0.5%
この過程には、意味理解や感情、意図、文脈の内的把握は一切関わっていない、これが致命的な欠陥の1つ
プログラミングを自動でまるで仮面ライダー01の01ドライバーの様にベルトの作成までやってくれているように喧伝してる奴らが多い
が、これを本気で信じ込んでプログラミング言語を書かせた奴がいたら、ほぼ間違いなくクビになる
わかりやすく上で例えた通り、LLMは、インターネット上に存在する膨大なコード断片・技術記事・GitHubリポジトリ・Stack Overflowの投稿などを学習している。
そのため【よく使われる文法構造】や【特定の言語における関数の使い方】や【ライブラリの典型的な使い方】などを【意味を全く理解できず模倣している】だけって事
【動かないコードをアホほど入れる(変数が未定義、型が合っていない、ライブラリに存在しない関数を呼んでいるとかいう小学生のプログラミングスクールでもありえないミス】
【. 「それっぽいけど間違っている」コードを大量に入れ込む(SQLインジェクション、XSSなど セキュリティ上危険な実装を入れまくる、パフォーマンスが極端に悪い実装、バグを含んでいるロジック(特にif文の条件分岐ではほぼ100%発生する)】
【実行環境に依存した誤り(存在しないAPIやライブラリを使う、ほぼ9割の確率で…あと特定のPythonバージョンやNode.js環境でしか動かないコードを汎用的に提示、つまり動きようがない)
専門的な意見となったのでわかりづらいので、もっとわかりやすく言うと「小学校のプログラミングスクール入りたて1週間の子供が書いためっちゃくちゃなプログラミングにすらなってないコードを、製品利用するからレビューして出してこい」と言われてるに等しい、つまり、最初から自分で書いた方が早い2度手間になる
これが、プログラミングの革命だ!とか喚いてる奴らが隠すAIの実態である。
import jwt
token = jwt.encode({'user_id': 123}, 'secret', algorithm='HS256')
一見正しく見えるだろうから解説すると、実際には 【jwt という名前のライブラリ】が複数存在し(PyJWT, python-jwtとか)importの仕方によってエラーが出たり挙動が変わったりする。普通なら絶対間違えない様な挙動をAIは構造上全く判断できない、これは上で上げた根本的な問題なので恐らく絶対に解決できない。
ハルシネーションがどういうものであるのか、AI批判でバズった記事などで言及されている通り、デマやデタラメを出力してしまう、あれは本当にわかりやすいAIの致命的欠陥を検証してるので、あえて説明はここではしない。
しかもその増田の元記事では「文章データのテキストまで読み込ませれば間違いがなくなるのでは?」といってたが、これも絶対になくならない、というより、もっとひどくなる。
批判をしている増田やXでの意見は単なる個人攻撃の誹謗中傷のみで、技術的に改善可能なプロセスさえ示せていない、例えば現在研究者の間では以下の様な解決案は研究されているが、どれも全く問題外とされている
これは、AIが「知っている風」に語る代わりに、外部の信頼できるデータベースや検索エンジンから情報を引っ張ってくる方式、バズった元記事の増田がやっていた「自分で図書館言って本の内容読んで誤りであることを確認する」これを検索エンジン使ってAIにさらにやらせる、という機能だ
また【メタモデル】すなわち、AIが自分の出力を裏でさらに別のAIが別プロセスでチェックして間違いをただす、という方式も研究されてる。
これは致命的な欠点が2つある、まず「検索で引っ張ってくる知識そのものが間違いだった場合、さらに間違いの結果を出し続ける」ということ。
元記事の増田はMP5というマシンガンの有効射程について突っ込んでいたと思うが、これが典型的なRAG、メタモデルの致命的欠点、元増田は「実際に自分の手で銃を取り扱ったりしたことがある確かな経験で言ってる」が、書籍などの工業スペックや仕様書の定義でしかネット上では流布してない、だからそもそも答えというものにAIがたどり着けない。
2つ目は「文脈や倫理・常識・道徳が根本的に読めないので、解決策が乱暴すぎるもの」になる。
上で上げた鉄砲以外では、例えば医学などでこれをやってしまうと取り返しのつかないことになる。例えば医者の投薬治療や治療はガイドラインに従ってるというが、優れた医者は論文を読み込んで原理は不明だがエビデンスはあるので、漢方薬を出したりするというお医者さんがよくいるだろう。あれは実際に患者を診て、西洋医学的には全く問題ないが、心理的な面も絡んで心身症になっているから、論文などで勉強して「暗黙知、経験知」として処方してるし、その量も患者を診た医者の経験で精度を上げている。
そして医療分野では、「冷え性の軽いむくみ」に対して「サムスカ(トルバプタン)」という劇薬指定の危険な利尿薬をAIが提示した事例すらある。これを「笑い話」で済ませることはできない。
例えるなら判断が「脳外科医竹田君」並になる、投薬治療で3か月で治る程度の病気を、病根から外科手術で切除しましょう、なんて提案になる。最新のAIなのに80年前みたいな医学知識と判断になってしまうのだ(胃潰瘍ってだけで胃袋は全摘、ついでに脾臓と盲腸もいらねーからとっとこ、みたいな手術が昭和の昔、本当にガイドライン治療だった、「K2」などで言及されている)
学習できるベースがどうしても偏る以上、情報の統合に限界がある、さらに間違いが間違いをよび、さらに変な間違いを起こしたりありえない架空のことをいったりする、これがハルシネーションというメビウスの輪である
Neuro-symbolic AIという次世代のさらに文脈も読み取れるアーキテクチャAIを研究しているが、全く実用化されていない、核融合や量子コンピューターみたいな雲をつかむ話なので、AIがこの問題を解決することは恐らく今後数百年はありえない、という結論が出ている。
元増田の記事で批判もあったが、恐らくAIで一番致命的な問題はこれ
基本的にAIは英語ソース、つまりリングワ・フランカで圧倒的にテキスト量の多い(約95%)英語、日本語含めそれ以外の全世界言語が5パーセントという偏った学習になっている
そのため、倫理・道徳・常識・規範などがすべて西洋基準になってしまう、という問題がある。(元増田はこれを「脱獄の基準の倫理は誰が決めるのか?」と根本的な問題に気が付いていて批判していたようだ)
ちなみに、バズってた例の記事に「AIに書かせたんだろ」という批判も大量にあるしよくみかけるが、この場合においてのみ言うなら、これは③の問題からまずありえないということがわかる、以下が根拠だ
元増田は「俺達の麻生とかいって秋葉原で踊ってた…」とか「レムちゃん、エミリアたん、ヘスティアちゃん、ウマ娘たん、刀剣乱舞くん、ライカン様…」といった批判を繰り返し書いていた
これに激怒できる人間は、2005~2010年にオタク界隈や秋葉原にすでにかかわっていて、実際に渦中にいたか同じ属性の人間でしか、罵倒されていると文脈的に理解できないのである。つまり、大量の英語文化圏情報を食ってるAIではなんでそれが罵声や侮蔑なのか理解できないので、書きようがない表現の数々、であるということである。
AIからすれば「ライカン様?ウマ娘?なんじゃそりゃ」なのである、もっと言えば、その直後にコンテクストとして「アホ、ボケ、弱者男性、豚丼、性器や自慰で虚しく…」といった言葉があるから、なんならAIはウマ娘やライカンをキャラクターでなく侮蔑単語として理解してしまう、これは実際、元増田の記事の一文をAIに食わせて質問したらガチでそうなるので、ぜひお手元で試してもらいたい。
「プログラマーのイメージを描いて」と依頼すると、男性の画像ばかりが出るされる
「看護師」→女性、「エンジニア」→男性という職業的性差が自動的に反映される
「アフリカの文化」→貧困・紛争・サバンナなど、植民地主義的視点が強く反映される(実際は南アなどはすげえ都会である)
これに前述のハルシネーション問題として現れれば、人間と同じような差別や偏見を「ガチの真実」として学習してしまう、人間の場合、8割くらいは本当はおかしいこととメタ批判が心理的にできるとされているが、AIにはその構造が根本的に存在しない。
元増田の記事のコメント欄やXなどで元増田のAI批判を批判しつつ、「金持ちの上級白人専用のハイエンドAIがあるに違いないんだ」といっている意見が少なくない数がある。
冷静に考えれば、そんなめんどうくせえもん誰が作るんだ、と普通に考えればわかるのだが、この③の問題、すなわち95%の学習データが英語ソースなので、結果的に西洋文明ベースの文化圏の人間向けにカスタマイズされているので、アジア圏やその他文化圏では利用に不利でそう感じてしまう素地ができている、という錯覚に由来している
例えば、パレスチナ問題などがそうだ、ガザ地区でほぼ国際条約や人道違反の残虐行為を国が行っているわけで、他文化圏や歴史的文脈から見ればどっちかって言えばパレスチナ人こそ被害者なのだが、イスラエルから見ればそれは正義であり正当な攻撃なわけで、後者の方がAIは正しいと判断した結論を下す様になる、といった問題である
あの記事の元増田は「テロ組織のヤバイマニュアルまで学習してpdfで元データを提示してきた」と言っていた。実際AIに調べさせて持ってこさせてみると、出所はアメリカの法務執行機関が研究用にネットで公開したものであった。
日本人や日本の警察の対応レベルで「ヤバイ」ものでも、海外の軍隊みたいな装備の警察で見れば大したことがないから、公開させてもいい=倫理違反には当たらない、という文化規範の意識の違いを、あの元増田自身が証明してしまっている、あの記事は、AIの治しようがない根本的な技術的欠陥をほとんど言及しているといっていい
元増田が口汚く罵っている内容の様に、「AIは0を1にできないから格差が広がるだけ」という根本的な哲学を投げつけている
それを受けて批判してる意見の中には「(自分が1を持ってる側と何故か根拠もなく信じ込んでて)100にできるから(なら)便利」とか「そのAI今から勉強したりしてる俺たちは先行者利益で強者になれる」と信じて疑わない意見が多かった
③問題の通り、そもそも非キリスト教圏かつ非英語圏の国家で生まれて育った民族、というだけで、我々は等しく「0」側の人間であり、結局競争になると勝てない、ということに全く気が付いていないのである。ここにAI信者の宿痾といえる病理がある
かつて日本人は黒船を見て5年そこらで蒸気機関を模倣した、火縄銃を一丁買えば10年でオスマン帝国の次に鉄砲を使うようになった、それは当時の日本人の基礎工学技術が導入可能なほど優れており、かつそれに対して現代では考えられないほぼバクチといっていい投資を行った結果であって、その結果を見て自分たちはAIを使いこなせて強くなれるなんていうのは、物凄い妄想である。つまり、AIは少なくとも「非英語圏」の人間にとっては、ブレイクスルーは絶対に起こりえない、ということである。
全く別の話だけど、このページXSSあるな
「フロントエンド不要論」は、最近の開発現場やサーバーレス、クラウド技術の進化に関わっている人たちの間でリアルに実感されている問題です。
• React, Vue, Angular などのフレームワークがどんどん複雑化
• フロントエンドとバックエンドの分離が、**「本当に効率的か?」**という疑問が生じている
• 「最終的にHTMLを描画するだけなら、サーバーでやればよくない?」
• フロントエンドから直接APIを叩く構成では、「APIを守る」ことが難しい
• XSS, CSRF, CORSといった脆弱性に対処し続けるコストが無駄
🚩 3. サーバーレス・クラウド技術が進化し、APIの負担を減らす方向に
• AWS Lambda, API Gateway, Cognitoなどのサーバーレス技術が進化
• フロントエンドがAPIを叩くより、サーバー側で直接処理する方が効率的
• 以前はReactを使用 → ReactをやめてHTMLベースに戻した
• React, Vue, Angularを全廃
• JavaScriptなしで動的なページを実現
3. Laravel(Livewire)
4. Shopify(GraphQLでデータを直接取得)
• フロントエンドを完全分離する構成から、「バックエンドがHTMLを返せばいい」 というシンプルな構成へ移行
• APIの負担を減らすことで、開発効率とセキュリティを向上
✅ サーバーレス時代の最適解:「フロントエンド不要アーキテクチャ」
「フロントエンドを捨てて、サーバーがすべての処理を担う」方向に移行するのが最適解になりつつある。
📌 最適なアーキテクチャ
ブラウザ → サーバー(PHP, Node.js, Go) → API Gateway(Cognito認証)
📌 具体的な実装例(PHP + Cognito + API Gateway)
require 'vendor/autoload.php';
use Aws\CognitoIdentityProvider\CognitoIdentityProviderClient;
use Aws\Exception\AwsException;
$client = new CognitoIdentityProviderClient([
'credentials' => [
'key' => getenv('AWS_ACCESS_KEY_ID'),
'secret' => getenv('AWS_SECRET_ACCESS_KEY'),
],
]);
$email = $_POST['email'];
$password = $_POST['password'];
try {
$result = $client->initiateAuth([
'AuthFlow' => 'USER_PASSWORD_AUTH',
'ClientId' => 'XXXXXXXXXX',
'USERNAME' => $email,
],
]);
setcookie("accessToken", $result['AuthenticationResult']['AccessToken'], [
'samesite' => 'Strict'
]);
header("Location: dashboard.php");
}
?>
🚀 **「フロントエンドはもう不要」**という流れは、最新のクラウド/サーバーレス開発に携わる人たちが実感していること。
☑ セキュリティが大幅に向上する
なんて話題が出てますが、結局のところ記事中にもあるように「求める品質に達するため」のその求める品質をどこに引くか、だけの話でしかないハズ。
https://automaton-media.com/articles/newsjp/black-myth-wukong-xbox-20250106-324331/
例えば同様に Unreal Engine 5 を採用しPC版の最低要件が「メモリー: 16 GB RAM」である S.T.A.L.K.E.R. 2 では、
フツーにPC/XSX/XSS同時発売で、XSS版もなんの問題もなく動いてるのだから、一般論としては「ビジュアル品質さえ調整すればいける」ハズでしかない。
※S.T.A.L.K.E.R. 2 自体がまだ細かいバグがいっぱい残ってるって話はまた別の話
なお S.T.A.L.K.E.R. 2 XSX版では30fpsターゲットのクオリティモードと60fpsターゲットのパフォーマンスモードがあり、
XSS版では現在30fpsターゲットのモードのみが提供されているが、当然こういうのも「調整」の一つ。
また、UE5の特性として「lumenやnanite等を使うととにかくCPUヘビー」というのがあり、
PC版で RTX4060Ti + 32GB という環境であっても、CPUが Core i7-8700(6C12T)だと
描画設定全て低、FullHD の設定ですら CPU バウンドで精々30fps~45fps程度しか出ない。
その意味ではXSX版のパフォーマンスモードで(NPCの多数いる拠点以外は)ほぼ60fps出てるのは賞賛に値する。
(CPU的には8C16Tなので↑の環境より上ってことになる)
XSXとXSSでCPUパワーはほぼ変わらないので、流石にこのあたりは動作の根幹に関わり、
かつ調整(スケーリング)が難しい部分だというのを良く分かっている。
「黒神話:悟空」に話を戻すと、こちらもUE5タイトルなので、lumenの重さは仕方ないにしても、
ジオメトリの詳細度は nanite であればそれこそ無段階LoDに等しいのだからいくらでも荒く出来るはずなのと、
最悪でも「ランタイムでのnaniteの利用をやめてフォールバックメッシュで済ます」という手はUE5自身がサポートしているはず。
ということで「見た目」に目をつぶればジオメトリでのメモリ使用量はかなり削減可能であろう。
同じ事はテクスチャにも言えて、こちらも最悪は「XSS用には荒いテクスチャを用意」すればどうにでもなるのと、
荒いテクスチャを用意するというのは普通であれば4Kテクスチャからmipmapを作成するときに勝手に作られるので
そこまで手間ヒマがかかるもんでもない。(オーサリングツールがやってくれる範疇)
あと長くなってきたので割愛しますが lumen もCPUヘビーであると同時にかなりメモリも食う仕組みだけど、
とにかく色々妥協すればメモリ使用量は削減可能(スケーラブル)ではある。
https://www.docswell.com/s/EpicGamesJapan/51NY7K-UE_CEDEC2022_CitySampleRenderingOptimize
ということで、「なるべくビジュアル品質を保ったままXSSに最適化するには」という部分で
「ビジュアル品質にかなり拘っている」という話なんだろうな、と思っています。
(実際、黒神話:悟空が最初からかなりそこをアピールしているタイトルだし)
(※そしてこの手の中華ソウルライクって実は「そこを除けば」本家越えしてない場合が多くて、だからそこをスポイルしちゃうと…という話はまた別の話なので…ごにょごにょ…)
どっちかというとそういうリニアに調整可能な部分より、S.T.A.L.K.E.R. 2 の A-Life みたいな、
シミューレションなのであまり要素数を減らしすぎると成立しなくなる…みたいなやつの方がメモリ問題としてはクリティカルなはず。
そういうわけで A-life 2.0 が早くフル実装されないかなーとワクテカしながら毎晩のようにゾーンを彷徨っている増田でした。
(結局ほぼSTALKER2の話しかしてねえ!)
これまでは高いと言ってもゲーミングPCより安いからまだ価値はあった
PS4→PS5は高速ローディングというアピールポイントがあったからまだ良かった
それに比べてPS5Proって画質が上がるくらい
しかもPS6じゃなくてPS5Pro
遊べるゲームはPS5と一緒
ほんとなんのために買うの?
このせいで無印PS5が足を引っ張ってXSS/XSXと同じ道を辿ることになりそう
そもそも日本はPS5の時点であまり買う人いなかったし、売れること期待してないんだろうな
ドル 円
PS5 499.99 72,980
PS5Pro 699.99 119,980
PS5Proだと1ドル=171円くらいだ
日本のPS5の値段改定はつい最近なのでここは揃ってても良さそうなのにPS5Proはかなり高めに設定されてる
日本で売る気無いなというのがよくわかる
私は恒心教徒、といっても犯罪行為をする悪芋では無いし、カラケーのメインスレを追うぐらいしかやってない。書き込みもほとんどしていない。
このあいだ、いまだに続く「恒心教」の連鎖:ロマン優光連載254 | 実話BUNKAオンラインという記事が話題になってたんだけど、いや、お前らがそれを言うか? という意味で、少しイラっとした。
私は、若いころから悪質なサブカルが好きで、村崎百郎とかラジオライフとかを楽しんでたんだけど、このロマン優光も、コアマガも、そういう悪質サブカルに繋がる連中じゃないですか。
コンビニトイレの汚物入れ漁ったり、コードレスホンや消防、救急無線を傍受してニヤニヤしたり、ピッキングの練習したり、樹海に死体探しに行ったり、あるいはそういうレポートを読んでニヤニヤしてたわけじゃないですか。
はてな村だってそうで、はまちちゃんがXSS仕掛けるのをバカ笑いしたり、Hagexが胡乱な人たちを小ばかにしたのを拍手喝采していたわけじゃないですか。
で、私は、いわゆる淫夢とかは面白いと思ってないし、暇空も仁藤が嫌いだから一定の支持はするけど、その言っていること(認知プロファイリングとかw)はアホくさいと思ってるので、そういうのと恒心教は少し違うと思ってる。
まず、恐らく、多くの恒心教徒は、自分たちのやっていることは、犯罪であり悪いことであるというのを認識している。唐澤弁護士を恨んでいないし、たぶん嫌いでもない。むしろ、好きかもしれない。
しかし、それ以上に、新しい技術に挑戦し、今まで考えもしなかったアイデアを実現し、社会の秩序をバカにして、エラソーな連中をうろたえさせるのに、面白くなり、胸が高鳴り、爽快な気分を感じるのだ。
そういえば、ロマン優光が記事で触れてたネトウヨ春のBAN祭りや、余命騒動なんかも面白かったし、はすみとしこが特定されたりしたのは面白かった。あと、安倍晋三が殺された時もゲラゲラ笑ってた。別に、安倍晋三は嫌いじゃないんだよ。でも、面白いじゃないですか。
あと、10年もやっているのか、まだやっているのか、という指摘が多いけど、最近の大きな流れとして、過去数年、外伝主人公(唐澤弁護士や元高校生と直接関係ないターゲット)を狙った動きが中心だったのが、また唐澤弁護士に回帰してきたというのがある。つまり、リバイバル的な流れがこの1年ぐらいで強くなってきた感じがある。
そもそもセキュリティ用語はカッコイイのが多いのだけれどその中でも個人的に好きなやつ
一番好きな奴
略すとMITM攻撃
略してもかっこいい
スタンド名っぽい、っていうか5部にいた
でもBirtuday攻撃・バースデー攻撃って書くとサイコパス感が出てくる
ジョーカーとかがやってきそう
「かかったな!くらえ、ダンプスターダイビング!」とか言いそう
実際にはゴミ箱を漁るだけ
まるでBC兵器のような感じ
キャッシュっていうのとポイズニングっていうのが組み合わされるところも好き
ブルートフォース攻撃もまぁまぁかっこいいけどリバースが付くとかなりヤバい感じが出て好き
ReverseとForceが組み合わさることでアンチATフィールド的な感じが非常に良い
スタッフィングのフィのとこが好き
フィが良い
略すとなんとXSS
CorssがXになるとかかっこよすぎでしょ
というか略したら格好いいけどそのままだとダサい
他にもいっぱいある気がするけど思い出せない
だいたいがカッコイイやつが多い
ブコメのこれも異議があるなー。
Web系はそれなりに先端
誰でもできるレベルだったが、サッとやってみた程度の物を会社で出しているところが珍しかったから、耳目を集めやすかっただけ。
技術的にすごかった事例は思い出せないのに、簡単に突破できる Captcha とか XSS とか二重エスケープとかのイメージがあるので、技術の会社と名乗るの恥ずかしくないのかなと思う。最近でもサーバーレスポンスはしばしば劇重になる。現代であんなサチり方するのか。手動で調整しているのだろうか。
あまり関係ないが、日本で最初のソーシャルブックマークサービスとか嘯いていたのは、未だにどうかと思う。アンテナ感度が低いだけだ。
32 風吹けば名無し@転載禁止 [sage] 2014/11/25(火) 04:07:46 ( tor-elpresidente.piraten-nds.de )
使えなくは無いけども当職は使わないナリ
kaliかtailsをCDに焼いた方が便利ですを。win系のパスクラならophcrackがオススメナリ
守り方だけど鯖建てたい初心者はhackmeで検索してSQLインジェクションとXSS辺りの初歩を学ぶと良いナリ
バッファオーバフローはアップデートと設定さえ、やっとけば0dayで無い限りやられることは無いと思うナリ
win系とかの簡易ウイルス発見テクは「タスクマネージャが出ない」「隠しフォルダが強制非表示になる」
「サービス、スタートアップ、タスクスケジューラに不審なexeが登録してある」「USBを挿した時autorun.infを上書きしようとする」等々のパターンが多いナリ
とりあえず常駐プロセスとサービスがどこの会社のどのソフトか理解しておくことも早期発見に繋がるので大切ナリ
防御ソフトとしてはpeerblock、sandboxie、privoxy、EMET、DNSCrypt、comodo firewall辺りと適当なウイルス対策ソフトナリ
ブラウザはfirefoxでアドオンはadblock edge、cookiesafe、noscript、prefbar辺りを入れてprefbarでプロキシとかflashとかjavaのオンオフ管理すると良いナリ
カラッキング下準備
まず、基本となるLAMP自鯖を作って出来る限りのセキュリティを施すナリ
これでLinux系鯖の基本くらいは理解できるようにならないと侵入してもやることが無いナリ
次はツールの使い方を覚えるためにKaliLinuxとかを使って何とかして自鯖のセキュリティを破って侵入するか
自分でSQLインジェクションとかXSSとか書いて侵入するナリ
なお、簡単に入れる鯖はセキュリティ意識低いので拾ってきたバックドアでも問題無いナリ(例えばrootパスがデフォ設定の所とか)
ここまで来たら後は近所の無線をaircrack-ng等でカラッキング→tor+tsocksかproxychains辺りを使って恒心するナリ
https://anond.hatelabo.jp/20210617075257
上がってるような基本(元増田に上がってるやつの倍ぐらい)が全部立ち上げからできて
2〜3個プロジェクト経験したらテックリードの素養が既に身についてそう。
プロジェクト的にもどっちかが弱いと
Rails/DjangoにjQuery+Bootstrapみたいな構成や
Amplify/FirebaseにVue/Reactみたいな構成も全然あるので
面接はなんとか抜けてもらうとして、
チーム開発での最低限の目標としては、
成果物から、指導、学習コスト、レビューコスト、技術的負債、マネジメントコストを引いた分が正になっていれば
ひとまず「チームに居ていい人」と見なされそう。
チーム的に良くても、経営層にそれで許されるかはわからんのでその辺の立ち回りも上手いことやるとして、
一旦は、正の生産性を目指してほしい。
以後、ブコメで誰一人一ヶ月でできるって言ってなくて笑うので、
一ヶ月というのは無視して、三〜六ヶ月程度をイメージしつつ書いていく。
似たような言語なのでどっちからやってもいいし、両方同時にやってもいい。
どっちかしかやらないならJavascriptがおすすめ。後ででてくる、Flaskは適当にExpressとかに置き換える
現場だとほぼTypescriptなので、Javascriptはある程度慣れたらTypescriptに移行したほうがいい。
どちらも、Python2とES2015以前の記法というレガシーがネット上に転がってるので参考にしないように注意。
・一貫性があって
・正しい書き方がされた
お手本プロジェクトをなにか(githubや書籍など)で手に入れて読むべき。
おそらくフレームワークに乗っかっているので並行して進めることになる。
話の流れで先にこっち
現在のコーディングのグッドプラクティス、デザインパターンはフレームワークの形をしている。
なので、ReactとVueをその思想から理解しきれれば、プログラミング言語の潮流の最先端に追いつけるはずだ。
TypescriptもVue.jsも書き方をどこまで取り入れるかが使用者の裁量に任されてるし、
開発でVueとReactのどっちを使うかはチーム次第なので、
一旦React+Typescriptでガチガチに書かれたコードプロジェクトを拾ってきて、必死で解読するのがいいと思うなー。
2割ぐらいわかった気になればチーム入ってから(React, Vueどちらだったとしても)動けそう。
パッケージとかテスト、タスク&デプロイ辺りもこのタイミングで拾ってきたプロジェクトを使って学ぶ。
バージョン管理とコンテナの思想が優れているのは自明なので、これらはツールと見ていい。
そして、後からプロジェクトに入った人がプロジェクトの流儀に沿って使う分には難しいことはなさそう。
採用に来た人がgitとかわかってるとチーム開発経験者だなーって思うし、知らないと未経験者なんだなーって思うし、
そういう意味ではチーム開発の経験があるかどうかの試金石にはされてそう。
構築できる、ではなく、触れる程度で良さそう。
gitはプロジェクトの流儀によると書いたが、git-flowのイメージ図を理解して運用できるのがよい。
https://qiita.com/KosukeSone/items/514dd24828b485c69a05
こういうのができるんだなーって言うのを知っておいて、調べつつ書ければ十分。
あとはシェルスクリプトとかって思ったけど同様のことはPythonでもできそう。
地味にSSHでログインした先の環境だと、vimが主要なテキストエディタになるので
vimを最低限触ることだけ要りそう。もういらないかもって思ってたんだけどなー。
→ ファイル開いて入力モードに切り替えて書き込んで保存して終了
細かく書いたが、LPIC-1の範囲がほどよくまとまっているのでそっちを参照するとよい。
これが意図なら
この辺の機能を持った小規模Webアプリを作ってHerokuでデプロイすれば一旦完成とみなしてよさそう。
コード書き写しただけにならないようには注意しつつだけど、長く見て5人日ぐらい?
慣れると1日あればいけると思う。
フレームワークもなんでもいい。
Djangoとかでも各コンポーネントがどんな働き方してるか程度はわかるだろうしそれで十分。
余力があれば複数個触ってみたり、人から勧められたらそっちでも。
最近はサーバーレス&NoSQLが流行ってるのでFirebaseとかもやればいいと思う。
に尽きる。
計算量を気にしなかったせいで線形検索メソッドとfor文を組み合わせて
それらに対して分散や非同期処理で解消しようとするとか、
ちょっとでもアルゴリズムを触った人ならアホらしいなって思うような行為を
計算量を意識するだけなら、AtCoderのABCのC〜D問題辺りが解ければ十分。
有名な脆弱性や攻撃手法は、ほとんどフレームワーク等で解決手段が用意されている
のでアドリブをせずに正しい書き方でやれば良い。
開発現場でもセキュリティリスクがある箇所を1から自前で実装することを経験が浅い者にはやらせないので、
ただただ、フレームワークが正しいとしているやり方をなぞるのが良い。
開発の勉強のやり方としては、
・正しいコード見本を手に入れること
この辺りの習慣があればやってけんのかな、
その他、チーム開発って面では
TeamGeek(人間性)とかインプットしておくと共通言語が増えて嬉しい。
この方向で進めてけば、その途中で正の生産性≒足引っ張らないぐらいになれるので、
そしたらやってけるんちゃうーって感じ。
取り上げた技術は、本格的な開発でも役に立つもので、最も学習コストが低いものを選んだ。
重要度が低いものは載せていない。たとえばHTMLとCSSなんてググりながら書けば全く問題ない。Bootstrapなどのフレームワークも全くやる必要はなく、仮に就職先で使っていたら覚えればいい。
逆に言えば以下に挙げる技術は、そもそも概念自体がプログラミングにとって普遍的なものであり、(基礎的な部分を)調べながら使うようではエンジニア失格ということ。
基本的に現在では、バックエンド・フロントエンド・運用保守全てができないエンジニアに価値は無い。
以下に挙げた技術(①⑤⑥は他の言語やフレームワークで代替可能)が身に付いていなければまともな企業に就職することは難しい(もちろん、下らない業務システムを下請けで作ってる底辺企業には入れるだろうが)。
経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。
特定の言語やフレームワークの書き方を知っていること自体に意味は無い。
重要なのは、他の言語やフレームワークにも共通する基礎を理解すること・保守性やセキュリティなどの品質を高める使い方ができること。
この2つは習得が容易だし、今覚えておけば向こう10年腐ることはないだろう。
基本的な構文や、よく使う標準ライブラリは勿論、高階関数・クラス・非同期処理等の発展的な機能も知り尽くしていなければならない。
言語のみではなく、パッケージ管理、単体テスト、タスクランナー等の周辺ツールの使い方も熟知している必要がある。
また、「リーダブルコード」や「コードコンプリート」に書いてあるような良い作法も身に付ける必要がある。
Gitを使えないのはプログラマーとして論外。細かい機能は調べればよいが、
多くの場合、本番環境やテスト環境はLinuxサーバーであるから、以下のような基本的な概念と使い方を知っておく必要がある。
環境構築、CI、デプロイなどは、現在コンテナを使って行うことが当たり前になっている。
これも細かいことをすべて覚える必要はないが、Dockerfileの書き方や、docker-composeの使い方などは知っておかなければいけない。
Flaskは、数あるWebフレームワークの中で最も簡単。本当に呆れるほど簡単で、Pythonさえ書ければすぐにアプリを作れる。
フレームワークを覚えること自体が重要なのではなく、Web開発の基本を習得することが重要。HTTP、ルーティング、データベース、SQL、認証、セッション管理などは当然すべて覚える。
データベースは、就職したらMySQLやPostgreSQLなどを使うことが多いかも知れないが、今はPythonの標準ライブラリにあるSQLite3を使えば十分。
作ったアプリを公開したければ、「Heroku」などにデプロイするのが良いだろう。
ブコメで指摘をいただきました。HerokuではSQLite3は使用できないようです。公式のドキュメントに従ってPostgreSQLを使用して下さい。
SQLite3はファイルにデータを持てる簡易DBなんだけど、Herokuにデプロイしてもストレージ的な使い方はできないから、結局PostgreSQLを使う必要あるから注意してね。(DAOを丸ごと書き換える羽目になる)
参考: https://devcenter.heroku.com/ja/articles/sqlite3
今の時代、フロントエンドをフレームワークなしで作るのはただのバカ。
2021年現在、実用的なフロントエンドのフレームワークはReactとVueしかない。Vueの方が少し簡単なのでこちらを選んだが、JavaScriptをしっかり理解しているなら大差は無い。
フロントエンドには膨大なパッケージ群があって全部覚えるのは大変だが、とりあえずまずはVueを完璧に使えればいい。Webpackの設定などは既存のものを流用すればいい。
アルゴリズムは全てのコンピュータ技術の基礎であり、絶対に知っていなければならない。
高速フーリエ変換のような高度な数学は必要ないが、クイックソートや木構造のような基本的なアルゴリズムは当然、その性質を知っていなければならない。
それらは言語の組み込み関数や標準ライブラリでも使われており、理解していなければ、それらの機能を正しく使うことができない。
また、プログラムを読み書きする際には、そのコードの計算量を見積もれなければならない。
セキュリティは言うまでもなく学ばなければならない。
有名な脆弱性や攻撃手法(XSS・SQLインジェクション・CSRFなど)が何だか理解していて、その対策を実装できなければならない。
各種暗号化技術や署名などについても、実装の詳細は知らなくていいが、共通鍵暗号や公開鍵暗号などの特性は理解する必要がある。
ワクチン大規模接種東京センターの予約システムで発生した、適当な数字を入力しても予約できるシステムの不備はバグなのか脆弱性(セキュリティホール)なのかを考えていこう。
もし、脆弱性であるとするならば、しかるべき報告フローを取る必要があるからだ。
記事の末尾に参考リンクをいろいろおいておいたので、詳細は確認してほしい。
この問題は、本来するべきチェック処理をしていないのだから、バグの一種といえる。
// ただ、改善する気がないのなら仕様となるのだろうけどね。
では、適当な数字を入れても予約できちゃうバグは、脆弱性(セキュリティホール)と言えるのか?
もし、脆弱性(セキュリティホール)となるなら、ゼロディでいきなり公開する前に、しかるべき報告フローを取るべきだ。
// ただ、新聞社は、ネットで噂になったものを取材して報道しただけであるから、ゼロディで公開とは言えないだろうけどな。
これはタダのバグであって、脆弱性(セキュリティホール)と呼ぶのは言い過ぎだろう。
例えば、教科書レベルの「"<script>alert("XSS");</script>」でXSSを発生させる意図的な入力をして、誤動作が発生するなら、それは間違いなく脆弱性(セキュリティホール)といえる。
同様に、SQLインジェクションを発生させる意図的な入力をして、何か変なことが起きれば、これも間違いなく脆弱性といえる。
他にも、超でかいデータを送りつけてバッファオーバーフローさせたり、特殊な入力をしてスタックを破壊して戻り値を改ざんして任意のコマンドを実行するみたいなものも同様に脆弱性と呼んでもいいだろう。
(注:念のために書いておくが、不正アクセスで違法になる可能性があるので、自分の所有するサイトやコンピュータ以外へは、これらの入力を試さないように。)
でも、ごく普通の入力をしても、エラーとしてはじかないで受け入れてしまうのは、脆弱性ではなく、タダのバグであるように思う。
「こういう操作したら、計算結果が変になった」はバグの領域であって、脆弱性とまでは言えない。
今までの話を簡単に言うとしたら、ドラクエ4で8回逃げたら会心の一撃が連続して出るのはバグなのか脆弱性なのか?って話になるのかな。
確かに、8回逃げることで、データのバッファオーバーフローが発生して、そのような結果になる。
でも、8回逃げるというはやろうと思えは誰でもできる動作であって、これをバグではなく脆弱性(セキュリティホール)と呼ぶのは違和感がある。
この裏技を見つけたとして、脆弱性としてしかるべき報告フローを取らずに公開したことを咎められるとしたら、実に変な話である。
これら裏技を試しても不正アクセスと言われて、罪を着せられたり、裏技の記事を削除されるとしたら、強烈な違和感がある。
今回の事件で、それが一番気になった。
最終的には、裁判で裁判所が決めることになるんだろうけど、あまりアホな判決を出して、日本のエンジニアの手足を拘束しないでほしいと思う。
参考URL:
■ドラクエ4で「にげる」8回でずっと会心の一撃になるバグ、こういう仕組みで起こってたらしい
https://b.hatena.ne.jp/entry/s/togetter.com/li/1715732
■「誰でも何度でも予約可能」ワクチン大規模接種東京センターの予約システムに重大欠陥
https://b.hatena.ne.jp/entry/s/dot.asahi.com/dot/2021051700045.html
■岸信夫 on Twitter: "自衛隊大規模接種センター予約の報道について。...
https://b.hatena.ne.jp/entry/s/twitter.com/KishiNobuo/status/1394440062125805572
■脆弱性の手口、IPA「見つけたらまず開発者やIPA窓口に報告して」 コロナワクチンの架空予約巡り
https://b.hatena.ne.jp/entry/s/www.itmedia.co.jp/news/articles/2105/18/news145.html
■Hiromitsu Takagi on Twitter: "私はこの届出制度の提唱者・設計者・運用協力者・有識者研究会委員であり、IPAの広報が取材にこんな回答をしたのであれば、出鱈目であり、...
https://b.hatena.ne.jp/entry/s/twitter.com/HiromitsuTakagi/status/1394713619212816385
■ワクチン大規模接種「架空ウェブ予約」やったら犯罪? 国は「法的手段」に言及
https://b.hatena.ne.jp/entry/s/www.bengo4.com/c_23/n_13071/
■確認作業は公益性高い、毎日新聞 接種センター架空入力は取材目的
https://b.hatena.ne.jp/entry/s/this.kiji.is/767285347672670208
https://b.hatena.ne.jp/entry/s/dot.asahi.com/info/2021051900065.html