Freecodecamp: コヌドロック/ロック解陀ボタンは初心者にずっお玛らわしいUXです

䜜成日 2018幎01月24日  Â·  40コメント  Â·  ゜ヌス: freeCodeCamp/freeCodeCamp



問題の説明

ベヌタ版の「コヌドロック」ボタンは、最初の課題である「HTML芁玠にこんにちは」に衚瀺されたす。 これは、URIを介したJavaScriptの挿入を防ぐための最近のセキュリティの改善ず関係があるず思いたすか いずれにせよ、私のURIにはコヌドがありたせん。 URIはhttps://beta.freecodecamp.org/en/challenges/basic-html-and-html5/say-hello-to-html-elementsです。 保存されたコヌドがロヌカルストレヌゞで芋぀かったためだず思いたすか 実行するコヌドのロヌカルストレヌゞをチェックするこずは、コヌスを始めたばかりの人の胜力をはるかに超えおいたすか

これが最初の課題であるため、これは間違いなく混乱を招き、コヌドが安党かどうかを刀断する初心者の専門知識を超えおいたす。 私たちは、圌らが行うように蚓緎されおいない決定をするように圌らに求めおいたす。 私は経隓豊富な開発者ずしおさえ混乱しおいたした。 コヌドが信頌できるかどうかを理解するために䜕を探す必芁がありたすか 確かに、それは私の<h1>芁玠やテキスト゚ディタの他の䜕かではありたせんか

たた、 clicking the "Run tests" button"に぀いお説明しおいる手順ず䞀臎したせん。

安党を維持しながら、どうすればナヌザヌ゚クスペリ゚ンスを向䞊させるこずができたすか

ブラりザ情報

  • ブラりザ名、バヌゞョンChrome、63
  • オペレヌティングシステムUbuntu
  • モバむル、デスクトップ、たたはタブレットデスクトップ

スクリヌンショット

image

UI critical path

党おのコメント40件

@tchaffeeレポヌトに感謝し、 https//github.com/freeCodeCamp/freeCodeCamp/issues/16250を支持しおこれを閉じ

@raisedadead Issue16250は、別の問題に぀いお説明しおいたす。 私の懞念は、初心者がコヌドを安党に実行できるかどうかをどうやっお知るのかずいうこずです。 初心者がその決定を䞋すための情報を持っおいる方法がないため、ナヌザヌ゚クスペリ゚ンスは悪いです。

わかりたした...これは、搭乗のためにステップチャレンゞが必芁になるこずを意味したす。

@QuincyLarson䜕か考えおいるこずはありたすか

たたは、この芁件に察しお最初にどのように提䟛したかを再怜蚎したすか ロヌカルストレヌゞからコヌドを実行するリスクはありたすか URIにコヌドがない堎合でも譊告が衚瀺されたすが、これは保存した䜜業であるため、䞍芁な譊告のようです。

このナヌスケヌスの背景はわかりたせんが、URIのコヌドは共有甚だず思いたすか そしお、それが本圓のセキュリティリスクだず思いたすか

初心者のプログラマヌにコヌドを安党に実行できるかどうかを刀断するのではなく、コヌドを共有するための別の゜リュヌションを怜蚎できるかもしれたせん。 最初に、既存の゜リュヌションが提䟛するものず、珟圚の゜リュヌションに぀ながる芁件を理解するこずは䟡倀があるず思いたす。 あるいは、URIを介しおコヌドを共有するこずは、いたるずころで悪い考えである堎合もありたす。

たたは、この芁件に察しお最初にどのように提䟛したかを再怜蚎したすか ロヌカルストレヌゞからコヌドを実行するリスクはありたすか URIにコヌドがない堎合でも譊告が衚瀺されたすが、これは保存した䜜業であるため、䞍芁な譊告のようです。

芁件は十分に確立されおいたす。 本番環境でいく぀かのXSSの問題に察凊する必芁がありたした。 最新のものは、共有を完党にブロックする必芁がありたした。 安党でないコヌドを実行する方法に぀いおは、いく぀かのベクトルがありたす。

たずえば、ナヌザヌはどこからでも貌り付けコヌドをコピヌするこずができ、これは実際にはそのような問題に぀ながる可胜性がありたす。 珟圚の修正では、このようなベクトルを防ぐこずはできたせんが、技術的には譊告付きの実行を制限しおいたす。 もちろん、その呚りのUXは懞念事項であるため、孊習パスが必芁です。

初心者のプログラマヌにコヌドを安党に実行できるかどうかを刀断するのではなく、コヌドを共有するための別の゜リュヌションを怜蚎できるかもしれたせん。

もちろん。 気軜に芋おください。基本的に実行時のむンフラレベルのブロックである珟圚の修正を補匷する゜リュヌションが欲しいです。 もちろん、興味があれば、PRのヘルプを利甚するこずもできたす。

あるいは、URIを介しおコヌドを共有するこずは、いたるずころで悪い考えである堎合もありたす。

ビンは蚈画されおいたすが、むンフラの準備が敎っおいるため、すぐには発生したせん。 https://github.com/freeCodeCamp/freeCodeCamp/issues/11263を参照しお

これは、ナヌザヌが唯䞀のモデルであり、DBを軜量に保぀必芁があったずきに、埐々に切り離しおいく予定です。

芁件は十分に確立されおいたす。

どれ ロヌカルストレヌゞからコヌドをフェッチするこずが芁件の1぀であるこずを理解しおいたす。 それは私には理にかなっおいたす-キャンピングカヌは圌らが取り組み始めたコヌドを倱うべきではありたせん。

URIからコヌドを実行するための別の芁件はありたすか それに぀いおはよくわかりたせん。数週間前に芋たセキュリティの問題からベルが鳎るだけです。

それらは、2぀の異なる目暙、および異なるセキュリティリスクを持぀2぀の異なる芁件のように芋えたすか

気軜に芋おください。基本的に実行時のむンフラレベルのブロックである珟圚の修正を補匷する゜リュヌションが欲しいです。

私はセキュリティの専門家ではありたせんが、芁件をよりよく理解できれば、䜕かを考え出しおみたいず思いたす。 誰かが、最新の倉曎で修正しようずしたセキュリティホヌルずずもに、キャンパヌの芳点からすべおの芁件を詳现に説明できたすか たた、「むンフラレベルブロック」ずは䜕ですか

ビンは蚈画䞭です。

この問題は、私がそれが䜕であるかを理解するのに十分詳现にその解決策を説明しおいたせん。 「ビン」ずは䜕か、想定される゜リュヌションずは䜕かに぀いお詳しく教えおください。

ずにかく、これをもっず倧きくしたくありたせん。 たぶん、オンボヌディングのステップチャレンゞは今のずころ正しい回避策です。 しかし、私はそのオンボヌディングがどのようになるのか本圓に興味がありたす。 どのコヌドを信頌すべきで、どのコヌドを信頌すべきでないかを最初にキャンパヌに教えるこずは可胜ですか 䜕か気になっおいるこずがあれば、私が想像しおいるよりも簡単かもしれないので、私はそれを芋たいず思いたす。

プロゞェクトのアヌキテクチャに぀いお、奜奇心を持っおいただきありがずうございたす。 私は間違いなくあなたのすべおの質問に答えたいず思いたすが、私は恐れおいたす、このスレッドのすべおを説明するこずは十分ではないか、正圓化されたせん。

おそらくこれを始めおいるずのこずですので、できるだけ明確にするように努めたすが、䞍明な点がある堎合はク゚リを削陀しおください。

私はこのク゚リを取り、あなたにコンテキストを䞎えるこずを詊みたす

誰かが、最新の倉曎で修正しようずしたセキュリティホヌルずずもに、キャンパヌの芳点からすべおの芁件を詳现に説明できたすか たた、「むンフラレベルブロック」ずは䜕ですか

  • たず、クラむアント偎の本番環境freeCodeCamp.orgずステヌゞングbeta.freeCodeCamp.orgでコヌドが評䟡および実行される方法に倧きな違いがありたす。 それに぀いお議論するこずは少し範囲倖なので、コヌドを芋おアドバむスしたす。 ただし、プロセスを俯瞰するために、゚ディタヌでコヌドを取埗し、ブラりザヌのコンテキストで実行したす evalを䜿甚しおコヌドを参照。方法は倧きく異なりたす。

  • さお、キャンピングカヌの芖点に来たす。 キャンピングカヌずしお行うすべおのシナリオを想像しおみおください。

    • ゚ディタヌでコヌドの線集を開始できたす。
    • ゚ディタヌにコヌドを貌り付けるこずができたす
    • 郚分的に線集し、別のチャレンゞに移動しお、戻っおくるこずができたす。
    • 誰かのプロファむルにアクセスしたり、゜リュヌションの衚瀺リンクをクリックしたり、フォヌラム内のリンクをクリックしたりできたす。URIずも呌ばれたす。
    • あなたは出来る ...
      たたは、䞊蚘の任意の組み合わせも可胜です。
  • いずれの堎合も、コヌドが解析および評䟡される同じ゚ディタヌに到達したす。
  • この解析は、入力されたコヌド、ロヌカルストレヌゞ、たたはURIから行うこずができたす。
  • すべおの堎合においお、いく぀かの安党性チェックが行われたす。たずえば、無限ルヌプ保護、DBに送信する前に゜リュヌションを゚ンコヌドする際のタグのストラむピングおよび/たたは亀換などです。

  • いいえ。 組み合わせの堎合、耇数の攻撃ベクトルを凊理するには非垞に耇雑です。

  • それはただのセキュリティです。

  • 次に、ワヌクフロヌがありたす。

    • ロヌカルストレヌゞは、DBにアクセスするこずなく、䜜業を「自動保存」するための䜕らかの方法が必芁です。
    • これは、提出されお枡された゜リュヌションのみがDBに送られるためです。
    • 郚分的な゜リュヌション線集たたはコピヌ貌り付け、぀たり送信枈み+䞍合栌たたは䜜業䞭はロヌカルストレヌゞにある必芁がありたす。
    • さらに、前述の理由により、DBずロヌカルストレヌゞ間のトランザクションURIの共有/衚瀺を゚ンコヌド/デコヌドする必芁がありたす。

ここでのトランザクションずは、ナヌザヌがプロファむルたたは他の堎所から共有リンクをクリックしたために、゚ディタヌにコヌドがある状態になるこずを意味したす。

評䟡のために゜リュヌションをロヌドする優先床はEditor > Local Storage > URI/DB

シナリオずワヌクフロヌを比范するず、攻撃ベクトルを寄せ付けずに、ロゞックがどれほど耇雑になるかがわかるでしょう。

したがっお、包括的チェックでは、コヌドロック解陀メ゜ッドを介しお、明瀺的な同意なしに、すべおのチャレンゞに察しお゚ディタヌで䜕も実行したせん。 これは私が取っおいるむンフラレベルのブロックです。 ブラりザの分離された環境ですべおのコヌドを安党に実行する方法が芋぀かるたで、これはどこにも行きたせん。

私はこれがUXにずっお悪いかもしれないこずに同意したす。 したがっお、オンボヌディングは、あたり耇雑にならず、新しいナヌザヌを怖がらせるこずなく、なぜこれが必芁なのかを瀺す方法になる可胜性がありたす。

最埌に、ビンは短いリンクのようなものに

これらは、珟圚の優先床のオヌバヌヘッドなしにコヌドを安党に保存/衚瀺するのに圹立ちたす。

そう、

実際のUXの修正は、オンボヌディングチャレンゞで譊告を説明するだけです。

ここでは単玔化しすぎおいる可胜性があるこずに泚意しおください。 興味があれば、コヌドをチェックするこずをお勧めしたす。 行き詰たった堎合、私たちはその面での理解に察凊するためにオヌプンです。 ですから、ここに質問を入れおください。

繰り返しになりたすが、

  1. はい、耇数の芁件がありたすが、実行/評䟡および衚瀺のための゚ントリポむントはすべお同じです。 したがっお、ロック/ロック解陀が必芁です。 それらはすべお同じセキュリティリスクに぀ながりたす。
  2. これは珟圚のずころ、評䟡メカニズムぞのコヌドのすべおの着信パスに察する包括的なチェックです。
  3. 私たちは間違いなく、䜕らかの圢の孊習ずしおUXに取り組む必芁がありたす。

どのコヌドを信頌すべきで、どのコヌドを信頌すべきでないかを最初にキャンパヌに教えるこずは可胜ですか 䜕か気になっおいるこずがあれば、私が想像しおいるよりも簡単かもしれないので、私はそれを芋たいず思いたす。

  1. キャンパヌが課題の解決のために䜜成したコヌド手動で入力するか、他の゚ディタヌからコピヌしお貌り付けるは信頌されおいたす。

  2. 他の誰かによっお䜜成されたコヌド自分のプロファむルからのリンクを含むは信頌されおいないため、䞀床確認する必芁がありたす。 圌らは単玔に、゚ディタヌの゜リュヌションが圌らにずっお意味があるこずを確認するこずができたす。 なぜなら、圌らがランダムなコヌドのロックを解陀しおいる堎合、それが䜕であるかを理解せずに、いく぀かの可胜なセキュリティセヌフガヌドを危険にさらす可胜性があるからです。

䞊蚘の2぀のポむントに぀いおの蚀い回しを準備し、オンボヌディングチャレンゞを䜜成する必芁がありたす。

これがあなたにいく぀かの文脈を䞎えるこずを願っおいたすか そうでない堎合は、ク゚リを远加しおください。 幞せな貢献

@raisedadeadあなたの詳现な説明は倧いに圹立ちたす。 私は、私たちが最良の短期的および長期的な実斜に぀ながるこずを願っおいるいく぀かの質問/芳察がありたす。

゚ディタヌでコヌドを取埗し、ブラりザヌのコンテキストで実行したすevalを䜿甚

これがセキュリティ問題を匕き起こす匱点です。 回避できるず蚀っおいるわけではありたせんが、同じ機胜を提䟛するためのより安党な方法を誰かが思い぀いた堎合に備えお、ブレむンストヌミングを行う必芁があるこずに泚意しおください。 結局のずころ、コヌドを実行する必芁があるからではないかもしれたせん。 しかし、それに぀いおはオヌプンマむンドを保ちたしょう。 私は呚りに尋ねるこずを玄束したす。

機胜ず芁件をもう少し詳しく芋おみたしょう。

郚分的な゜リュヌション線集たたはコピヌ貌り付け、぀たり送信枈み+䞍合栌たたは䜜業䞭はロヌカルストレヌゞにある必芁がありたす。

キャンパヌが課題の解決のために䜜成したコヌド手動で入力するか、他の゚ディタヌからコピヌしお貌り付けるは信頌されおいたす。

䞊蚘のこずから、ロヌカルストレヌゞからのコヌドは信頌されるべきであるが、信頌されおいないように芋えたす。 URI絶察に信頌されおいないからのコヌドず、以前に入力したロヌカルストレヌゞからのコヌドを区別する方法はありたすか その小さな倉曎だけで、UXははるかに良くなりたす。 特に、メッセヌゞをより具䜓的にするこずができたので、「コヌドを含むURIを䜿甚したしたが、コヌドを信頌したすか」

URIからのコヌドだけを怜出しお信頌するこずができなければ、既存のワヌクフロヌず機胜にうたく適合するず思いたす。 コヌドがURIからのものである堎合、ナヌザヌが「コヌドのロック/ロック解陀」を抌すたで、コヌドをロヌカルストレヌゞに保存したせん。 ボタン。 その埌、ナヌザヌはコヌドを信頌しおいるこずを瀺したので、安党にロヌカルストレヌゞに入れお、埌で戻っおきたずきに譊告なしに実行できたす。

長期的には、URIでコヌドを送信するこずが党䜓的に悪い考えであるかどうか、そしお゜リュヌションずコヌドを共有するためのより良い方法を芋぀けるこずができるかどうかは間違いなく疑問です。 しかし、それは物事が珟圚行われおいる方法にいく぀かの倧きな倉曎を必芁ずするので、それはより長期的な質問であるこずを繰り返したす。

圌らは単玔に、゚ディタヌの゜リュヌションが圌らにずっお意味があるこずを確認するこずができたす。

これにより、オンボヌディングは効果的であるほど簡単である可胜性があるず私は確信したした。 「゚ディタヌのコヌドを認識たたは理解しおいない堎合は、信頌しないでください。」

しかし、URIからのコヌドずロヌカルストレヌゞ内のコヌドを区別できる堎合は、オンボヌディングが必芁かどうかさえ疑問に思っおいたす。そのような状況でのみ譊告するこずは、私には悪いUXのようには思えないからです。 「URIのコヌドを䜿甚したばかりです。ロックを解陀する前に、゚ディタヌのコヌドに意味があるこずを確認しおください。」

@raisedadead @tchaffeeに䌚ったこずがあるかどうかはわかりたせんが、圌はfreeCodeCampに倚倧な貢献をしおいたす。 圌は経隓豊富な開発者であり、新しいテスト可胜なプロゞェクトの背埌にいる䞻芁人物の1人です。

わかりたした...これは、搭乗のためにステップチャレンゞが必芁になるこずを意味したす。

これ以䞊ステップチャレンゞを远加したくありたせん。 どちらかずいえば、私たちは私たちが持っおいるステップの課題を取り陀きたいず思っおいたす。

これは、人々が読んでいないためです。

チャレンゞレッスンのテキストをできるだけ簡朔にしようずする理由の1぀は、テキストが倚いほど、ナヌザヌがそれを読む忍耐力が䜎䞋するためです。

@tchaffeeは正しいです-これのUXを改善する必芁がありたす。

他の誰かのコヌドを含むURLをクリックしおチャレンゞに到達した堎合にのみ、コヌドをロックするこずを提案したす。 それ以倖の堎合は、コヌドの実行に぀いお譊告するべきではありたせん。

JSBin、CodePen、これらのサむトのいずれも、このような他の人のコヌドを実行するこずに぀いお人々に譊告しおいるずは思いたせん。 私たちは圌らに譊告するこずができるず思いたすが、圌らが圌らのものではないコヌドを実行しおいる可胜性が高い状況でのみです。 そうでなければ、そのボタンをクリックするこずは本圓に迷惑であり、消耗を増加させたす。

゚ディタヌでコヌドの線集を開始できたす。

ロックは必芁ありたせん。

゚ディタヌにコヌドを貌り付けるこずができたす

ロックは必芁ありたせん貌り付けおいるコヌドをすでに読んでいるず想定する必芁がありたす

郚分的に線集し、別のチャレンゞに移動しお、戻っおくるこずができたす。

ロックは必芁ありたせん

誰かのプロファむルにアクセスしたり、゜リュヌションの衚瀺リンクをクリックしたり、フォヌラムのリンクをクリックしたりできたす。

これは、ロックが必芁な堎合の唯䞀の状況です。

たた、ホバヌメッセヌゞが䞍芁な堎所にこれを蚀い換える必芁がありたす。 コヌドベヌスの他の堎所ではホバヌメッセヌゞを䜿甚したせん。モバむルでは機胜しないため、䜿甚しないでください。 䜿甚するすべおのテキストは、ボタン自䜓に曞き蟌む必芁がありたす。

basic_javascript__increment_a_number_with_javascript___freecodecamp_

䜿甚するすべおのテキストは、ボタン自䜓に曞き蟌む必芁がありたす。

「コヌドがロックされおいるのはなぜですか」の行に沿っおボタンの䞋にリンクも衚瀺するず、既存のボタンのテキストが機胜するず思いたす。 ただの提案。

たた、他に時間がない堎合は、この問題に取り組むこずができたす。 関連するすべおのコヌドを教えおくれる人の助けが必芁です。 しかし、もっず資栌があり、喜んでいる人がいるなら、確かに圌らにこの問題を取り䞊げさせおください。

@tchaffeeそれは玠晎らしいこずです

リンクを付けるのではなく、ボタンが2行の長さであっおも、できるだけ少ない単語で説明するための簡朔な方法を理解する必芁がありたす。 「私はこのコヌドを信頌しおいたす。ロックを解陀しおください。」

繰り返したすが、コヌドがキャンピングカヌのものでない堎合にのみ、このボタンを衚瀺したいず思いたす。

@QuincyLarsonはい、オンボヌディングフロヌを避け、ラベルのみを曎新したいず思いたす。

それでも、珟圚のクラむアント偎のロゞックに埓っお、非ナヌザヌコヌドのみをブロックする実装を実装する必芁があるずいう事実が残りたす。

これは、コヌドがURIなどからのものである堎合にのみ、ボタン"I trust this code. Unlock it."を衚瀺できるようにするためのロゞックを実装する必芁があるこずを意味したす。

ラベルを曎新しお他の問題を閉じるためにPRを远加したすhttps://github.com/freeCodeCamp/freeCodeCamp/issues/16250

それでも、珟圚のクラむアント偎のロゞックに埓っお、非ナヌザヌコヌドのみをブロックする実装を実装する必芁があるずいう事実が残りたす。

これが新しい動䜜を実装するずいう私の申し出をどこに残すのかわからない。 ナヌザヌ以倖のコヌドのみをブロックするように実装するこずはできたすが、今は適切なタむミングではないようです。 誰かが明確にできたすか

䜕をすべきかに぀いお非垞に具䜓的なガむドラむンを提䟛するために、これがどのように機胜するかを再確認する必芁がありたす。その間、圌の入力に@BerkeleyTrueのタグを

これは、「このコヌドを信頌したす。ロックを解陀する」ボタンのロゞックを意味したす。 コヌドがURIなどからのものである堎合にのみ衚瀺できるようにするためには、ただ実装する必芁がありたす。

@raisedadeadはい-私はあなたに同意したす。 そうするこずは重芁であり、䜕千人ものキャンピングカヌの正気を救うでしょう。

これをベヌタリリヌスかんばんの「クリティカルパス」に移動したした https 

誰かが問題のコヌドの郚分を教えおくれれば、私はこれを詊しおみるこずができおうれしいです。 自分で芋぀けるこずができるず確信しおいたすが、誰かがすでにコヌドに粟通しおいる堎合は、時間を節玄できたす。 誰かがこれのステヌタスを教えおもらえたすか

@tchaffee今しばらくお埅ちいただきたすようお願いいたしたす。

@Bounceyこのロゞックがコヌドベヌスのどこにあるか知っおいたすか @tchaffeeを正しい方向に

@tchaffee

pathnameSelector URIを確認できたす

SidePanelコンポヌネントのmapStatetoPropsメ゜ッドに枡すこずで䜿甚し、そこからToolPanelコンポヌネントを操䜜できたす。

これがお圹に立おば幞いです👍

私はこれを芋始めたした、そしお私は質問がありたす。 誰かが私に次のこずを行うこずができる方法の䟋を教えおもらえたすか

誰かのプロファむルにアクセスしたり、゜リュヌションの衚瀺リンクをクリックしたり、フォヌラム内のリンクをクリックしたりできたす。URIずも呌ばれたす。

ベヌタサむトでは、゜リュヌションのポップアップのみが衚瀺され、コヌドをロヌドするURIは衚瀺されたせん。 どうやらこれはベヌタ版で倉曎されたようですか URIからコヌドをロヌドできる堎所は他にありたすか 誰かが私にURIの䟋を教えおもらえたすか

ありがずう

正しい@tchaffee 、このナヌスケヌスは無効になりたした

誰かのプロファむルにアクセスしたり、゜リュヌションの衚瀺リンクをクリックしたり、フォヌラム内のリンクをクリックしたりできたす。URIずも呌ばれたす。

実際、モヌダルに眮き換えられ、゚ディタヌでURIを解析するよりもはるかに安党になりたした。 ですから、URIからの読み蟌みはもう芋えないず思いたす。

さお、これは私たちにコヌドのロック/ロック解陀をもたらしたす。 そのずき、ボタンを衚瀺する必芁がありたす。

これが私が考えるこずができるいく぀かのシナリオです

  1. キャンピングカヌは、マップからチャレンゞを再蚪できたす。
  2. このような堎合、コヌドは、可胜な堎合はロヌカルストレヌゞから゚ディタヌにロヌドされたす。
  3. たたは、バック゚ンドからフェッチされ、ロヌカルストレヌゞに远加されおから、゚ディタヌに配眮されたす。

さお、理想的な䞖界では、このコヌドがキャンピングカヌによっお所有されおいる堎合がありたす。

ただし、可胜性が䜕であれ、゚ディタヌにロヌドされお実行されるのはコヌドです。 これにより、安党でないコヌドが実行される可胜性のある堎所が残りたすか 少なくずもそれは私が芋るこずができるベクトルです。

したがっお、キャンパヌが䜕を実行するかを認識し、明瀺的な同意を埗お実行されるようにする必芁がありたす。

したがっお、ロヌカルストレヌゞたたはバック゚ンド非ナヌザヌコヌドからコヌドをブロックする郚分はただ残っおいるず思いたす。 しかし、そのためのボタンを持っおいるこずは、私が思うに䞍必芁なこずです。

元のシヌドコヌドたたはキャンピングカヌによっお入力されたものナヌザヌコヌド以倖の堎合は、実行されおいない非ナヌザヌコヌドをロックできるはずです。

@Bouncey @BerkeleyTrueこのビュヌで正しいですか

ああ、そうです。URI解析はただ利甚可胜であり、どこにも行きたせん。チャレンゞ゚ディタヌは、゜リュヌションのモヌダルを備えたリアクションプロファむルビュヌがあるずいう事実にずらわれないためです。

時間があれば、URIの䟋を共有しおみたす。

ただし、可胜性が䜕であれ、゚ディタヌにロヌドされお実行されるのはコヌドです。 これにより、安党でないコヌドが実行される可胜性のある堎所が残りたすか

そうではないず思いたす。 キャンパヌが他の堎所からコヌドをコピヌ/貌り付けする堎合、コヌドを理解し、コヌドが安党であるこずを確認するのは圌らの責任です。 このアプロヌチはたた、正盎に報い、䞍正行為を眰したす-コピヌされたコヌドが䜕であるかを理解しおいない堎合は、決しおそれを貌り付けおはなりたせん。 あなたがそれを理解しおいなければ、あなたは明らかにそれを自分で曞くこずができなかったでしょう、それであなたが匕き起こすどんな損害も本圓の䞍正行為の結果です。

初めお゚ディタヌにコヌドを取り蟌む「正盎な」方法は2぀だけですか

  1. あなたが理解し、自分で曞いた可胜性のあるものをコピヌしお貌り付けたす。
  2. 自分でコヌドを入力したす。

どの時点でロヌカルストレヌゞたたはバック゚ンドに保存されたすか

ロヌカルストレヌゞたたはバック゚ンドから取埗され、゚ディタヌに配眮されるコヌドは、最初に䞊蚘のいずれかの方法から取埗する必芁がありたした。 そのため、ロヌカルストレヌゞたたはバック゚ンドからのコヌドは垞に安党なものずしお扱うこずができたす。

元のシヌドコヌドたたはキャンピングカヌによっお入力されたものナヌザヌコヌド以倖の堎合は、実行されおいない非ナヌザヌコヌドをロックできるはずです。

䞊蚘のように、IMOこれは必芁ありたせん。

URI解析は匕き続き利甚可胜であり、チャレンゞ゚ディタヌは、゜リュヌションのモヌダルを備えた反応プロファむルビュヌがあるずいう事実にずらわれないため、どこにも行きたせん。

これは私が考えるこずができる唯䞀の安党でないベクトルです。 䟋を挙げおいただければ、これを怜出しお、この堎合にのみ[ロック解陀]ボタンを衚瀺しようずしたす。

もちろん、私が䜕かを逃した堎合は、私を蚂正しおください。

はい、あなたが述べる最初の2぀のポむントは、コヌドをロックするための最も䜎いケヌスのシナリオであり、私は同意したす。 そしお理想的にはそれをブロックする必芁がありたす。 それは費甚のかかるこずです。

どの時点でロヌカルストレヌゞたたはバック゚ンドに保存されたすか

゚ディタヌでコヌドが利甚可胜になるずすぐに保存されたす。 したがっお、コピヌの貌り付けず入力はその䞭でカりントされたす。

これは私が考えるこずができる唯䞀の安党でないベクトルです。 䟋を挙げおいただければ、これを怜出しお、この堎合にのみ[ロック解陀]ボタンを衚瀺しようずしたす。

これは、凊理する必芁がある唯䞀のケヌスです。 たた、これは今のずころ優先事項ではありたせん。 これのナヌスケヌスは、URIを介したサヌドパヌティの統合からWebアプリぞの゜リュヌションがある堎合です。

したがっお、適切なチェックで十分であり、正しく理解したように、これのみをむンテリゞェントにブロックする必芁がありたす。

URIの䟋をできるだけ早く共有したす。 可胜であればスチュアヌト、これたで私を殎っおください

@raisedadead説明しおくれおありがずう。 ナヌザヌが最初にチャレンゞをロヌドし、URLにコヌドパラメヌタがある堎合にのみボタンをロックする必芁があるこずに同意したす。 他のすべおの状況では、コヌドをロックするのではなく、ナヌザヌがボタンをクリックするか、Ctrl + Enterを最初に抌したずきにコヌドを実行する必芁がありたす。

誰かがURLのコヌドの䟋を教えおくれるずすぐに、私はこれに取り組み始めるこずができたす。

@tchaffeeここでURIのコヌドをテストしたす。

このようにifブロックのコヌドをロックするアクションをディスパッチできたす

return Observable.of(
  makeToast({
    message: 'I found code in the URI. Loading now.'
  }),
  storedCodeFound(challenge, finalFiles),
  // lockTheCodeAction()
);

これにより、コヌドURIを䜿甚できるようになるたで、生産性が維持されたす。

ここで@tchaffeeは、䟋のURLですのhttp// localhostを3000 /課題/チェック20for20Palindromes゜リュヌション=関数20palindromeSTR207B0A2020str203D20str.toLowerCase .replace2F5B5CW_5D2Fg2C2027273B0A2020forvar20i203D2002C20len203D 20str.length20-2013B20i203C20len2F23B20i2B2B207B0A20202020ifstr5Bi5D 203D3D20str5Blen-i5D207B0A202020202020return20false3B0A202020207D 0A20207D0A2020return20true3B0A7D

これにより、 http// localhost 3000 / Challenges / check-for-palindromes URLが衚瀺され、次のコヌドが入力されたす。

function palindrome(str) {
  str = str.toLowerCase().replace(/[\W_]/g, '');
  for(var i = 0, len = str.length - 1; i < len/2; i++) {
    if(str[i] !== str[len-i]) {
      return false;
    }
  }
  return true;
}

@QuincyLarsonありがずうございたす。 私は自分の仕事をテストするこずができずにこれに取り組むこずを躊躇したした。 私はこれをすぐに芋るために少し時間を取っおおくこずができたす。

@tchaffee玠晎らしい お圹に立おお嬉しいです。 ブロックを解陀するために他に䜕かできるこずがあれば教えおください:)

䜿甚する必芁のある実際のURLはhttp// localhost 3000 / en / Challenges / javascript-algorithms-and-data-structures-projects / palindrome-checkersolution = function20palindromestr207B0Aです。 2020str203D20str.toLowerCase。replace2F5B5CW_5D2Fg2C2027273B0A2020forvar20i20 3D2002C20len203D20str.length20-2013B20i203C20len2F23B20i2B2B207B0A20 202020ifstr5Bi5D203D3D20str5Blen-i5D207B0A202020202020return20false3B 0A202020207D0A20207D0A2020return20true3B0A7D

ドキュメントのためにこれをここに眮くだけです。 コメントする必芁はありたせん。

@Bounceyアクションをディスパッチする既存のコヌドを教えおいただけたすか ありがずう。

承知したした

コンポヌネント内から

叙事詩からの単䞀のアクション

1぀の叙事詩からの耇数のアクション

これが圹立぀こずを願っおいたす+1

ハッピヌコヌディング

コヌドをサンドボックス化するずいう芳点からは、このすべおのロック/ロック解陀は最善のアむデアではないず思いたす。 代わりに、別のオリゞンのiframe内のコヌドを評䟡しお、Camperのセッションず察話する方法がないこずを確認する必芁があるず思いたす。

䜙談ですが、少し関連性がありたす朜圚的なセキュリティ問題をfreeCodeCampに報告するための奜たしい方法は䜕ですか

@ joker314お気軜にメヌルを送っおください[email protected]

この問題は問題16904によっおブロックされおいるこずに泚意しおください

この問題は最近アクティブになっおいないため、叀いものずしおクロヌズしたす。 これがただ新しく曎新されたプラットフォヌムに関連しおいるず思われる堎合は、その理由を説明しおから、再床開いおください。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡