問題タブ [self-destruction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 一度実行して自分自身を削除する必要があるPHPファイル。出来ますか?
エラーなしで1回実行され、それ自体を削除するPHPファイルを作成することは可能ですか?
security - 安全で「自己破壊的な」電子メールを設計するにはどうすればよいでしょうか?
ほとんどの人が知っているように、電子メールは非常に安全ではありません。クライアントと電子メールを送信するサーバー間の SSL で保護された接続を使用しても、メッセージ自体はインターネット上のノードを飛び回る間はプレーンテキストであり、盗聴に対して脆弱なままです。
もう 1 つの考慮事項は、送信者は、メッセージが、たとえ意図された受信者であっても、ある程度の時間が経過した後、またはメッセージが一度読まれた後で、判読可能であることを望んでいない可能性があるということです。これにはいくつかの理由があります。たとえば、メッセージには、召喚状を通じて要求できる機密情報が含まれている場合があります。
解決策 (最も一般的な方法だと思います) は、メッセージを信頼できるサード パーティに送信し、そのメッセージへのリンクを受信者に送信して、受信者がサード パーティからこのメッセージを読み取ることです。または、送信者は暗号化されたメッセージ (対称暗号化を使用) を受信者に送信し、キーをサードパーティに送信できます。
いずれにせよ、このアプローチには根本的な問題があります。このサードパーティが侵害された場合、すべての努力が無駄になります。このような事件の実際の例については、Crypto AGが NSA と共謀したことに関する大失敗を参照してください。
私が見た別の解決策は、メッセージを暗号化し、鍵を断片に分割し、断片を DHT (つまり、Vuze DHT) に「保存」するVanishでした。これらの値は、ハッシュを検索するだけで簡単かつある程度確実にアクセスできます (ハッシュはメッセージと共に送信されます)。8 時間後、これらの値は失われ、意図した受信者でさえメッセージを読むことができなくなります。何百万ものノードがあるため、単一障害点はありません。しかし、これは DHT に Sybil 攻撃を仕掛けることによっても破られました (詳細については、Vanish の Web ページを参照してください)。
では、これを達成する方法についてアイデアを持っている人はいますか?
編集:私は自分自身を明確にしていないと思います。主な懸念事項は、受信者が意図的にメッセージを保持することではなく (これを制御することは不可能であることはわかっています)、メッセージがどこかで利用可能になることです。
たとえば、エンロンの大失敗では、裁判所はサーバー上のすべての電子メールについて彼らに召喚状を発行しました。メッセージが暗号化されていて、キーが永遠に失われていた場合、暗号化されたメッセージがあり、キーがないと、何の役にも立ちません。
c++ - C++で「これを削除」は許可されていますか?
delete this;
delete-statement がクラスのそのインスタンスで実行される最後のステートメントである場合、許可されますか? もちろん、this
-pointer によって表されるオブジェクトがnew
ly-created であることは確かです。
私は次のようなことを考えています:
これはできますか?
security - 自己想起可能/破棄可能な電子メール プログラムの設計
タイトルがすべてを物語っています。これは私の課題の 1 つであり、始めるにあたって助けが必要です。課題の背後にある基本的な考え方は、(n) 時間後にメッセージを破棄できる自己破壊可能な電子メール プログラムを設計する必要があるということです。
自己破壊型メールについて言えば、インターネット上には同じサービスを提供するメールがかなりの数あります。しかし、彼らがしているのは、電子メール メッセージを画像に変換してサーバーに保存するだけです。ここで、画像をインラインで添付してメッセージを送信します。その画像へのヒット (メッセージが開かれたことを意味します) を受け取った後、彼らは画像を削除するだけで、インラインの画像リンクが壊れます! ブーム!
IMO、それは自己破壊的な電子メールのようなものではありません。それにもかかわらず、私の場合、次の点に注意する必要があります。
- 私はテキストのためにそれをしなければなりません。画像はありません。
- プロセス全体で使用されるシステムは UNIX ベースであると想定する必要があります (それがどのように違いを生むかはわかりません)。
- 問題を解決するためのさまざまなネットワーク層の使用に関するヒントもいくつかあります。
objective-c - 自殺:Objective-Cオブジェクトが独自の-deallocメソッドを呼び出す
Objective-Cのオブジェクトが自殺するのは良い習慣ですか?つまり、オブジェクトが[self dealloc]
どこで-dealloc
許可されているかを宣言するために、通常どおり整然と終了しますか?主なリスクは何ですか?
たまたま、特定の例があります。NSObjectを拡張し、NSTimerインスタンスとタイマーの起動回数を制限するように設定されたNSUIntegerで構成されるカスタムタイマーオブジェクトです。時間切れになると、オブジェクトはタイマーにそのメソッド-invalidate
を呼び出すことで自殺を指示し、自殺します。-dealloc
これは自動的に行われるため、オブジェクトを追跡したり、オブジェクトの割り当てを解除する正しいタイミングを決定的に知る必要はありません。
より詳細な説明については、こちらの私の投稿を参照してください。
c++ - オブジェクト指向の自殺またはこれを削除します。
MSVC9.0でコンパイルされた次のコードは、Destructorを4回実行して出力します。これは、論理的です。
mainの最初の4行のコードは、未定義の動作を引き起こさないと思います(ただし、完全にはわかりませんdelete this;
)。その確認または<確認の反意語のプレースホルダー>が欲しいのですが。しかし、5行目と6行目については深刻な疑問があります。デストラクタを明示的に呼び出すことは許可されていますね。しかし、オブジェクトの存続期間はその後終了したと見なされますか?つまり、デストラクタの明示的な呼び出し後の別のメンバーの呼び出しは許可されていますか(定義されています)?
要約すると、上記のコードのどの部分(存在する場合)が未定義の動作(技術的に言えば)をもたらしますか?
c++ - コンストラクタで「これを削除」
このコードを実行すると実際に何が起こるでしょうか?
c++ - (仮想) デストラクタを直接呼び出すことは有効ですか?
この回答では、ライアンは仮想デストラクタを直接呼び出します。VS2010 でコードをテストしたところ、すべてのデストラクタが正しく呼び出されました (ロギング ステートメントでテスト済み)。そうすることは実際に有効ですか?このようなアプローチの問題、欠陥、または良い点は何ですか?
reset
少なくともデストラクタでクリーンアップする必要があるため、仮想関数をオーバーライドしなくても、実際の型を実際に強制的にリセットする方法としか考えられません。
また、デストラクタの呼び出しはどのような副作用をもたらすのでしょうか? そのようなデストラクタ呼び出しの後にオブジェクトを使用するのは未定義の動作ですか? 呼び出しですぐに再初期化するとどうなりnew (this) MyClass();
ますか?
windows - LinuxBashとWindowsバッチの両方の自己削除スクリプト
アプリケーションで使用されるアドオンツールをクリーンアップするアンインストールスクリプトがあります。スクリプトのバージョンは、WindowsとLinuxの両方で実行されます。
アンインストールスクリプトファイルと、スクリプトが実行されているディレクトリも削除できるようにしたいと思います(Windowsバッチファイルの場合とLinux bashファイルの場合の両方)。現在、スクリプトとそれが実行されるディレクトリ以外のすべては、実行後も残ります。
スクリプトとスクリプトのディレクトリを削除するにはどうすればよいですか?
ありがとう
c++ - これを削除しますか?それは何をするためのものか?
以下を考えると:
出力は次のとおりです。
delete this;
劇的な影響はありますか?