この記事で説明した方法は、実際のプロジェクトでは適用されていません。これは、これを必要とするプロジェクトに遭遇していないため、実験では実行可能だと感じたためです。
1。私の考えの源
JavaScriptは良いことです。その外観により、ウェブページがより活気に満ちています。もちろん、利点はそれだけではありません。近年の人気のあるAJAXアプリケーションは、JavaScriptの小言語のアプリケーションにもっと注意を払わせ始めました(多くのプログラムの専門家はそれを言語と見なしていません。せいぜいスクリプトのタイトルであり、スクリプトを作る人々を見下ろすことさえあります)。現在、多くのブログでは、公式Webサイトでスクリプト許可を開き、ユーザーがスクリプトをカスタマイズしてスペースを豊かにすることができます。しかし、多くのブログには特定のスクリプト方法に関する制限があることもわかりました。ここで部分的な制限について話していることに注意してください。それがすべて制限である場合、それは非常に簡単です。 <script>スクリプトブロックをフィルタリングするだけですが、いくつかの制限はどのように達成されますか?
以前のプロジェクトでこのような問題に遭遇しなかったため、詳細な調査はあまりありませんでした。最初は、自分の感情に基づいて「交換」方法を使用することを考えました。明らかに、この方法がうまくいかないため、この方法は機能しません。たとえば、アラート方法を無効にしたい場合、次のコードが利用可能です。
window.alert( 'some message');
ここで、上記のコードを無効にするために、アラートを変更してください。たとえば、それをキャピタルアラートに変更します。これは間違いなくスクリプトエラーを報告しますが、トライ{} catch {}を使用してアラートを含めることができますが、これは言語パッケージの無効化の認識のためのもう1つの大きな問題です。
その後、私は方法を書き直し、無効化する方法を書き直し、何もしないようにしました。結果は実現可能であることが判明しましたが、それが科学的な方法であるかどうかはわかりません。私はそれを取り出してあなたと話し合います。
2。特定の実装
まず、次のコードを見て、2つの方法「アラート」と「書き込み」を無効にしましょう。
window.alert = function(){} document.write = function(){} window.alert( 'lert some message'); document.write( 'some message');本当に簡単に思えます。実際のアプリケーションでは、最初の2行を個別に抽出して外部JSファイルに保存し、JavaScriptメソッドをフィルタリングする必要があるページにJSファイルを最初にロードします(このスクリプトをユーザー編集コンテンツブロックの前の行にロードすることもできます。このようにして、その後無効な方法を呼び出すことは機能しません。
注:最後に、ユーザーが最初にロードしたJSファイルを削除するためにユーザーがDOM操作メソッドを使用できるため、remove()メソッドなどのDOM操作方法も無効にする必要があることを思い出させたいと思います。