問題タブ [google-caja]

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.

0 投票する
1 に答える
56 参照

jquery - htmlServiceを使用してjQueryダイアログを配置するにはどうすればよいですか

jQuery の位置は caja でサポートされていない "Fixed" を使用するため、position: {my: "top", at: "top", of: $("#here")}Nice simple は htmlService では機能しません。したがって、ウィジェットを移動するには、css を使用して位置を絶対位置に変更する必要があります。

position: {my: "top", at: "top", of: $("#here")}htmlServiceを使用するのと同じ効果を得る方法はあります か?

または、使用できるjQueryダイアログの代替手段はありますか? 誰かがサイドバーを離れずにボタンをクリックすると、単純なプロンプトを開くようにしています。

0 投票する
1 に答える
377 参照

javascript - Google Caja HTML Sanitizer を緩和するには? 消毒しすぎ

Google Caja HTML Sanitizer ( https://code.google.com/p/google-caja/wiki/JsHtmlSanitizer ) を使用していますが、不要なものをサニタイズしています。

次のような形式でデータを入力したい場合があります。

しかし、これは次のようになります。

0 投票する
2 に答える
2271 参照

java - Java で Google Caja HTML/CSS サニタイザー JS ライブラリを使用する方法

カスタム CSS フィールドを受け入れる Java API があります。CSS をデータベースに保存する前にサニタイズする必要があり、そのためにGoogle Cajaを使用したいと考えています。

まず、Rhino JavaScript エンジンを使用して、 Google Caja HTML/CSS サニタイザーJavaScript ライブラリを実行してみました。残念ながら、そのライブラリは DOM (具体的にはオブジェクト)の存在に大きく依存しているため、うまくいきませんでした。window

次に、Maven リポジトリから Caja プロジェクトをインポートしました。いくつかのテストを調べましたが、サニタイザーの使用方法の例が見つかりませんでした.

ブラウザをサーバーに持ってくることもできますが、それは少しやり過ぎのようです。

JavaでCSS文字列をサニタイズするためにCajaを使用できた人はいますか?

前もって感謝します!

0 投票する
0 に答える
61 参照

javascript - Google Cajaで の削除を防止

クライアント側で Google Caja を使用して、セキュリティ上の目的で HTML をサニタイズしています。ただし、さまざまな要素のスタイルは、サニタイズする前に受け取ったものと同じではありません. タグ内にあるものを保持する必要があり、その方法を理解しようとしています。

例として、次の HTML を受け取ります。

そしてhtml_sanitize(bodyHtml, urlX, idX);戻ります:

理想的には、スタイル タグを他のすべてのものと同じに保ちたいと考えています。そのようです。

どこでも解決策を見つけようとしていますが、できません。ドキュメントも参照し、カスタム ポリシーを実装しましたが、それでもスクリプト タグが削除されないように制御することはできません。

Google Cajaでこれを行う方法はありますか?

0 投票する
1 に答える
134 参照

javascript - Google CAJA を介してライブラリを渡す方法は?

Google Cajaを構成できるかどうか知っている人はいますか? 私は独自の CAJA サーバーと NodeJS に基づくアプリケーションを持っています。ほとんどがチャートやグラフに関連する CAJA ユーザー コードを Google に渡しますが、すべてのライブラリ関数 (d3js、chart.js など) は CAJA によってブロックされます。すべてのライブラリは Caja を通過し、エラーなしでユーザーのドキュメントに接続されますが、ユーザーがライブラリの機能を要求すると (たとえばd3.select("body").append("svg"))、次のようなエラーが表示されthis * is not a functionます。誰も方法を知っていますか?

PS URIポリシーについては知っていますが、ライブラリがuriPolicyを介して渡された場合でも、常にCajaによってチェックされているときはいつでも、同じオリジンドメイン名から発信されるすべてのものを制御しているようです.