問題タブ [purify]
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.
memory-leaks - Rational Purify がメモリー・リークへのジャンプに失敗する
そのため、私の会社では、(Microsoft Visual Developer Studio のプラグインとして) Rational Purify という非常にバグのあるプログラムを使用して、メモリ リークを管理しています。このプログラムは、メモリ リークが発生した後にクリックして、リークが発生した行にジャンプできるように設計されています。
残念ながら、Purify は誤動作しており、Purify はリークが発生した場所にジャンプすることはできません。リークが発生したクラスとメソッドしか言及されていません。森に行き、クマがいると教えてください。
Purify の経験がある人は、この問題を解決する方法や、適切なマニュアルを参照する方法を知っていますか?
c++ - BoundsChecker や Purify などの 64 ビット ツール
何年もの間、私は 2 つの優れたツールBoundsCheckerとPurifyを使用してきましたが、これらのアプリケーションの開発者は私をがっかりさせました。私たちは両方の会社に企業アカウントを持っていますが、どちらも 64 ビット アプリケーションをサポートするバージョンを作成するつもりはないと言っています。
64 ビットのネイティブ C++/MFC アプリケーションをサポートするオープン ソースまたは商用の代替製品を推奨できる人はいますか?
c++ - purify による COR ダンプの問題の処理
IBM purify を使用して C++ アプリケーションをインストルメント化すると、問題の COR ダンプが発生し、プログラムが異常終了しますが、ターミナルから実行すると問題なく動作します。この COR ダンプとは何か、またその処理方法を誰か教えてもらえますか?
プラットホーム:RHEL 64bit
ありがとう、
windows - 実行可能ファイルがインクリメンタルにリンクされているかどうかを知るにはどうすればよいですか?
Purify 6 を使用して、VC++ 2003 (7.1) でビルドされた実行可能ファイルのメモリ破損を分析しようとしています。
次のコマンドでバイナリをインストルメント化すると、次のようになります。
インストルメンテーションが中止され、実行可能ファイルがインクリメンタルにリンクされたことが通知されます。困惑して、ビルドオプションを確認しました/INCREMENTAL:NO
が、そこにありました。確かに、私はそれを再構築し、オプションはリンク時に正しく渡されました。
実行可能ファイルがインクリメンタルにリンクされているかどうかを知る方法はありますか?
私は何をdumpbin /HEADERS
言っているのかを見ましたが、関連するものは何も見ませんでした。
ありがとう。
memory-leaks - Valgrind vs Purify
Linuxではどちらが良いですか?ValgrindまたはPurifyそれらを使用することについてのあなたの意見は何ですか?
php - PHP でユーザー HTML を許可するためのアンチ XSS メソッドは問題ありませんか?
私は、ユーザーがデータを送信するための良い方法を見つけることに取り組んでいます。この場合、HTML を許可し、できる限り安全かつ高速にします。
このサイトのすべての人が、 http://htmlpurifier.orgがここでの答えだと考えているようです。私は部分的に同意します。 htmlpurifierには、ユーザーが送信した HTML をフィルタリングするための最高のオープン ソース コードがありますが、ソリューションは非常にかさばり、トラフィックの多いサイトでのパフォーマンスには適していません。いつかそこのソリューションを使用することさえあるかもしれませんが、今のところ私の目標は、より軽量な方法を見つけることです。
私は以下の 2 つの機能を約 2 年半使用していますが、まだ問題はありませんが、ここでプロから情報を得る時が来たと思います。
最初の関数はFilterHTML($string)と呼ばれ、ユーザー データが mysql データベースに保存される前に実行されます。2 番目の関数はformat_db_value($text, $nl2br = false)と呼ばれ、ユーザーが送信したデータを表示する予定のページで使用します。
2 つの関数の下には、 http://ha.ckers.org/xss.htmlで見つけた一連の XSS コードがあり、これらの 2 つの関数でそれらを実行して、コードがどれほど効果的かを確認しました。結果、彼らは私が試したすべてのコードをブロックしましたが、明らかに 100% 安全ではないことはわかっています。
皆さん、それを見て、私のコード自体、または html フィルタリングの概念全体についてアドバイスをください。
いつかホワイトリストのアプローチをしたいと思っていますが、htmlpurifierはそのために使用する価値があるとわかった唯一のソリューションであり、前述したように、私が望むほど軽量ではありません。
以下の関数は、ユーザーが送信したコードを Web ページに表示するときに使用されます
以下のコードはha.ckers.orgからのもので、上記の機能ではすべて失敗するようです
私はそのサイトのすべての人を試したわけではありませんが、他にもたくさんありますが、これはほんの一部です.
元のコードは各セットの一番上の行にあり、関数を実行した後のコードはその下の行にあります。
continuous-integration - Purify を Hudson CI に統合する方法は?
私は Hudson CI システムをセットアップしており、今のところ、プロジェクトの構築と単体テストの実行に使用しています。次のステップは、メモリ リーク検出器の Purify をビルド サイクルに統合することです。ここで、purify 内でも単体テストを開始したいと考えています。このために、次のコマンドを実行する新しいバッチ タスクを作成しました。
Purify のドキュメントで読んだように、GUI モードではなく purify を実行するために /SaveTextData オプションが使用されます。コマンドラインでローカルワークステーションでこのコマンドを実行すると、完全に機能します。ただし、ハドソンによって開始された場合は、何も起こりません。残念ながら、浄化のログはありません...
Hudson やその他の CI システムで浄化を開始しようとした人はいますか?
前もって感謝します。
よろしくお願いします
マーティン
編集: Hudson を異なるコンピューターでマスターとスレーブとして実行していることをお伝えするのを忘れていました。マスターで、スレーブの浄化内で単体テストを開始するタスクを構成しました。JNLP 経由でスレーブを実行しています。
編集 18.03.2010:
わかりましたので、ようやく問題の原因に少し近づきました。
purify ローカルで単体テストを実行すると、ログ ファイル EngineCmdLine.log に 3 つのコマンドが含まれていることがわかりました。
次のコマンドで浄化を開始しています。
purify を手動で開始したときの EngineCmdLine.log の出力:
ファイル: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msv9\TestRunnerConsoleWD.exe
ファイル: C:\WINDOWS\system32\ws2_32.dll
ファイル: D:\workspace\hudson\workspace\Purify_TestFW_CommonsCoreTest_Cpp_msvs9\TestDemoWD.dll
Hudson 経由で起動した場合の出力:
purify のエラー出力:
問題は、purify が TestDemoWD.dll ライブラリでコマンドを 2 回開始するのはなぜですか?
memory-leaks - C++ で次の Purify 検出されたメモリ リークを回避するにはどうすればよいですか?
次のメモリ リークが発生しています。おそらく std::string が原因です。どうすれば回避できますか?
c++ - クラス/構造パディングでの Purify の Uninit Memory Read (UMR)
Purifyを使用したクラス/構造パディングの非常に厄介な副作用が発生します。例えば
最後の行は、初期化されたメモリの 3 バイトがアクセスされたことを示す UMR 警告をトリガーする可能性が高いです。これは明らかに誤検知です。構造体の最後の 3 バイトにユーザー データがなく、単なるパディングです。
多くの場合、警告によってログ ファイルがすぐにいっぱいになり、他の実際の問題を確認するのが非常に難しくなります。
誤検知を抑制する方法を知っている人はいますか?
c++ - Purify を使用して g++ で例外をスローすると、SIGABRT が発生するという既知の問題はありますか?
実際、私の本当の質問は、次のコードの指定された行に何か問題がありますか (「Causes SIGABRT」):
浄化ソフトウェアに問題があることを証明するために IBM/Rational に送信する最小限のテスト ケースを作成しようとしているので、最初に SO コミュニティで実行しています。はい、2行目で意図的にメモリをリークしています。例外がスローされたときに「リークした」ポインタが初期化されることはわかっています。
上記のコードは、g++ でコンパイルした場合、purify の外部では正常に実行されますが、purify の内部で実行するとコア ダンプが発生します。上記のコードで初歩的な間違いを犯したのでしょうか (SIGABRT を私のせいにしています)、それとも IBM/Rational Purify を指さすことができますか?
編集:(説明)
purify を使用せずにコマンド ラインで実行すると、上記の完全なプログラムが出力されます。
purify、purify レポート内で実行します。
前提条件が含まれているなどの後、9行目は私が示した行になることに注意してください。