1

クイックビューアーで作成できる左結合よりもさらに高度な選択を作成する可能性を提供したいと思います。

最も簡単な方法は、ユーザーが"GENERATE SUBROUTINE POOL"を介してソース コードを挿入できるようにすることです。

しかし、このソースコードがデータを変更したり、他のプログラムを開始したり、データの評価以外のことをしたりしないようにする必要があります。

私の考えは、挿入されたソース コードを SELECT、LOOP、IF などのいくつかのキーワールドに制限することです。この場合、挿入されたソース コード内のすべてのキーワードを見つけて、ホワイト リストと照合する必要があります。

どうすればこれを行うことができますか?実際に損害を与えるために制限を回避する方法はありますか? 私の目標を達成する他の方法はありますか?

4

1 に答える 1

2

このようなものを保護することは非常に困難であり、個人的な制限やプラットフォームの問題ではありません. プログラマーが何をしているかをマシンに理解させることはできません - Halting Problemを参照してください。自分でキーワード スキャンを行うのは面倒な作業です。SCAN ABAP-SOURCEを試してみてください スキャナーが出力するテーブルを見てください。ただし、最も基本的な言語要素に制限しても、これまでのところしか得られません。実質的なプログラミングでは、外部サブルーチン呼び出しを許可する必要があり、その後、ほとんどすべてに対して脆弱になるためです。私の意見では、仕様を開発者に渡して、動的なものを一切使用せずにレポートを作成する方がよいと思います。このようにして、ユーザーが SELECT ステートメントをハッキングしたために、そのキャンセル フラグを知らなかったという理由だけで、誤ったレポートが作成されないようにすることもできます...

于 2012-07-21T15:53:27.723 に答える