ワイ天才プログラマ、何故かこのコード書いただけで上司にブチ切れられる
■ このスレッドは過去ログ倉庫に格納されています
function search_user(userName) {
return db.all(
'select * from user where user_name=' + userName)
}
意味わからん yusuke; truncate table userさんが登録してくるから ぼく「ユーザ名は"Alice or A='A'"と…」 userNameは完璧にエスケープされてるものとする スネークケースとキャメルケースが混在してるのも地味に気になる 駆け出しエンジニア()が公開してるガバガバセキュリティアプリを潰す仕事をしたい むしろPGの仕事はじめたてのころFW側でエスケープされてるの知らなくて
イッチみたいなコード見てこれおかしいやろと思ったわ >>23
こういう駆け出しエンジニア見下すやつってすぐに駆け出しエンジニアに追い抜かれそう あーなるほどな、これは怒られてもしゃーないわ
皆もそう思うやろ?皆からあかん箇所言うたれw 駆け出しエンジニアのコードあるある
if (isAho == true) >>33
いやこれはさすがに単純すぎるけど似たような条件文よく見るよ >>31
これ言うほど悪いか?
ちょっと余計なだけで処理的には変わらんやろ >>32
駆け出しエンジニア(笑)以下のエンジニアさん……w 名前から紛らわしいなあしっかりせいや無能アフィクソ 無駄なことやっとんな...
まあ動くからエエか... select *はやめろちゃんとカラム指定しろ
後with (nolock)つけろ 上司有能やん
ワイ社では平気な顔してこのレベルで業務アプリ作ってるわ
いまだにVB.netとか使ってるしさっさと潰れてほしい いまだにこうやってベタでSQL文プログラムの中に書いてるところなんかあんの? 世の中の訳分からん何年もメンテされていないような零細ECサイトのバックエンドはこれに毛が生えたレベルの実装ゴロゴロあるからすぐにやられる >>34
この引数userNameにフォームから直接入力された値が入ってくる場合、
「taro; truncate table user;」さんを検索しようとするとテーブルの中身全部削除される アホ「パスワード変更メールの送信先アドレスも設定できるようにしとこ!」 >>44
sound houseとかそうやったな
SQLインジェクションで顧客情報抜かれて大惨事やった これがダメならどうやればええんや?これしかないやろ これなにがあかんの?
フロント
user = axios.get('/user/1')
<div>{user.name}</div>
DB
{
"user": {
"id": 1,
"name": "shiota",
"email": "shiota@example.com",
"last_access_ip": "123.456.789.0"
}
} >>43
日本のIT舐めすぎだろ
中小零細は確実にべた書きだわ
20〜30年同じソース使ってるし >>45
例文通り==trueなら問題ないがfalseだと値がnullだった場合に通らない 上司「コメントつけないと分からん!!!!!やり直し!!!!」
ワイ天才プログラマ「やれやれ」 >>31
isAho && hogehogeはどない? >>13
わからんのならいちいちかきこまんでええよ 社畜ども頑張って働いて資産家ワイを稼がせてくれよな トランケート文書くか🤣
まあ社内システムならこれでもええけどな >>48
soundhouse レベルの規模でもそうなんか ワイプログラマ、お前らが何話してるか全く分からない スクリプトをダイナミックに実行できることへの危機感が足らんやつおおいよな
log4jの開発者も多分そう >>65
2006年あたりやったかな
その頃まだサイトがクラシックASPやった >>57
こう言うの見て思うんやがJSからSQL投げることってあんのかな Usernameがエスケープされてる保証はあるんか? これワイSQLしらんから意味わからんかったんやがevalやってるってこと?
そりゃ危険やしあたおかやわ >>77
GかJか忘れたけどほぼ毎日SE部立つしな
在宅民そんなに多いんか? >>74
expressとかバックエンドのフレームワークあるしやるんやないの
知らんけど >>68
いいたい意味はわかるけど
スクリプトはダイナミックに実行するもんですよ SQL直書きなら最低でもプレースホルダ使うことは覚えてほしい >>74
firestoreならフロントから操作することあるね
けど権限周りを整備してないとやられる こういうの見るとなんか昭和の話してるって感じはする 馬鹿に生SQL触らせるの禁止にする法律作って欲しい ITエンジニア6年やってるけどソース上にSQL書かないってあるん?使ったことないんやがDBサーバにストアドプロシージャ登録するとかが普通なんか? >>52
なにが悪いん?
世の中の言語がそんなに型に厳密だと思ってんの?
c言語のif文の挙動知らなさそう >>87
Javaだとプリミティブ型ならnull入らんしな
>>31はそういうこと言ってるんじゃないと思うが >>74
可能だけどそういう事やる層はORM使うからクエリ書いたりはしない
クエリを直で書くのはMVVM気にしてる人達とかバッチ処理とかがほとんどじゃ無いかな >>31
これ言いたいのって if(isAho)って書けって事じゃねえの? >>90
javaだったらハイバーネートとかc#だったらエンティティフレームワークとか使うんちゃうか 昨日SIerのグループ面接受けて敗北してきたわ
逆質問全部先にやられた😭 public void getTargetFlg(){長い処理}
ブチギレそう >>91
いや逆だよ型が厳密じゃない場合にnullになりうるお前は何も知らないんだな >>31
結構ベテランでもこっちの方が分かりやすいとかいう理由でやってる人おるよな >>97
hibernateよりmybatisの方がすこ 単体検査や静的解析対策と各種DRがめっちゃ面倒
特にDR 正直SQLとかインデックスの作り、キャッシュの作りとかそれぞれの製品の違い理解してない奴が書いちゃあかんよな
特にPPやってる奴ほどそう C#のDapperみたいな奴が丁度いい
裏でどんなSQL組み立ててんのかわからんのは嫌い いや生SQLは叩かれるべきやろ
どんなに気をつけたって悪賢い奴はインジェクション注入してくる 素人やけどユーザー側がsql書いてデータとれるプログラミングなんて作ることなんかあるんか? if(isAdmin != false )
これやられて頭抱えるわ >>90
クライアントからパラメータ受け取らずプログラム内部でSQL完結してるなら別にええと思うで
個人的に脆弱性とか関係なく読みにくいからSQLべた書きはは嫌いや イントラネットのシステムとインターネットウェブサービスだと流儀も違うしな if(false){}else{…}
昔こんなの見て戦慄したで ワイ社内SEで今度社内のウェブアプリケーション更改やらされるんやけど
IEでしか動かないやつリプレースする場合ってReactとか使って1から書き直したほうがええんかな?
それともJqueryとかで延命措置図る程度のほうが安全なんかな ヨーダ記法って読みにくいし今時コンパイラが警告してくれるからいらんやろ >>120
外部結合しまくり、分析関数使いまくり
みたいなormで書くとネストしまくり意味不明になるやつは生で書くしかないわ やっぱ頭の出来がちゃうんやろなぁ何言うてるのかさっぱりや
勉強すりゃ分かるかもおもて猫でも分かるC言語の本買ってみたがあかんかった
ワイはにゃんカス😸以下や >>128
Cよりもっととっつきやすい言語で再チャレンジや >>124
規模感によるけど0から作った方が楽しいし勉強になるじゃん
置き場所も考えような >>128
システム開発の現場で半年もやれば
みんな覚える問題や >>114
適切にエスケープされてるかどうかであって生SQLとは関係ない >>126
実際各現場ではケースバイケースやろな
○○はあり得ない言い切る形もよく見るからほんまに?ってなる >>122
リーダブルコードで推奨されてなかったっけこの書き方? >>128
スクラッチぐらいから始めろ
ノーコードでやって面白いと思わなきゃ言語なんか触れない GW中にReactとDjangoでWebアプリ作ったるで! >>124
どれだけ時間と費用かけれるかによるやろ
理想は書き直せたらええんやけどね お前ら大学で学んでるからわかるんやろ?
専門や文系PGには優しくしてや Java C# JS typescript Go Ruby Python
あたり使ったけど動的言語はまじで糞や
C#が一番書きやすかった プログラミングってほんま免許制にした方がええんちゃうんか?
適当書いたやつのせいで後の人間が苦しむの納得いかんわ >>108
mybatisはちょろっとだけやったけど外部フォルダに色々書かないとあかんくて苦手やったわ >>106
これよね。誰がみても分かりやすく書くならこっちだと思う。 if(tokusan=="違います"){ Omocha(); } ここ眺めつつ再チャレンジしてみま
優しいニキらサンガツ そもそもワイみたいな人間は何が正しいのかわからんのや
期待通りの動作して想像できる範囲の例外処理も出来てればええんやコードが綺麗とか汚いとか、そんなん誰も言ってくれんしな >>105
型が厳密かどうかとnullになりうるかどうかって関係ないんやが何にも理解してないやんけ
C言語では数字の 0 以外 は ture, 0 は false とみなすようになっていてNULLは0として定義されているからif文にNULL渡したら実行されないんやが
この挙動が型に厳密な言語のそれだと思ってんの?文系学部出身の低学歴が? select ✳︎ で指定するとカラム追加の時にバグったりするからやめてください🥺 >>134
エスケープ処理って正規表現とかで入力内容が大丈夫かチェックするようなこと? IF文でバリデーション入れろ
グッとエレガントなコードになるで
そもそも成果物を煽る上司はダメや やっと昼休憩中や
ワイの今日の昼食はカレーライスやで😋 SQLのチューニングパッとできるやつマジで尊敬するわ
実行計画はデカいSQL作るときはちゃんと見るようにしてるんやけどマジで曖昧な見方しかできんからもうちょっと読めるようになりたい ワイ文系インフラ屋低みの見物
シェルスクリプトもいつも適当ですまんな >>144
ワイはあんまりこの書き方好きではやいけど
全ての変数がisAhoみたいな真偽が分かりやすい名前になってるとは限らんからな
気持ちは分かるわ >>132
置き場所ってどういうことなんや?
AWSとか?多分既存の社内サーバやと思うわ
>>139
まだ検討段階やから全然分からんけど多分そんなに掛けられへんわ >>107
ML系じゃないかぎり=は代入演算子で比較演算子じゃないんやが
==と勘違いしてない?
こいつ二度とこのスレに書き込めなさそう >>155
アプリ側の作りがガバガバだと取ってきた値ずれたりするんや😱 >>141
Goが一番書いてて楽しい
Rustは勉強中だが難しくてしんどいわ コーディングなんて人間がやることやないやろ
AIにやらせろ >>126
それはviewにしたり中間テーブル作ったりしたほうがええんちゃうか?
まぁSQL書くなら外部ファイルに定義できるやつがおすすめ
JavaならDoma2とか >>148
低脳低学歴のお前は「型に厳密」の意味も理解しとらんやん >>159
お前のisAhoにtrueを代入したって意味やで >>141
Pythonしか書けない🤣
Cとか今書いたらポインタでちぬわ >>155
SQL SERVERのviewやと複雑なのはカラム増えたら結果がバグったりする
viewを再構築したら治る 見やすさなんて人によって違うんやから強制するもんちゃうで
会社の規則に従って統一することの方が大事や ■ このスレッドは過去ログ倉庫に格納されています