কোনও https সাইটে আইফ্রেমের মধ্যে কীভাবে http সামগ্রীর অনুমতি দেওয়া যায়


145

আমি কিছু এইচটিএমএল আইফ্রেমে লোড করি তবে যখন কোনও ফাইল রেফারেন্স করা হয় HTTP ব্যবহার করে তবে https নয়, আমি নিম্নলিখিত ত্রুটিটি পাই:

[অবরুদ্ধ] পৃষ্ঠায় {বর্তমান_পৃষ্ঠা নাম} এ {রেফারেন্সড_ফাইলেনাম from

এটি বন্ধ করার কোনও উপায় বা এটির আশপাশে যাওয়ার কোনও উপায় আছে কি?

Iframe এর কোনও srcবৈশিষ্ট্য নেই এবং সামগ্রীগুলি ব্যবহার করে সেট করা আছে:

frame.open();
frame.write(html);
frame.close();


একটি সম্পাদনা করেছেন।
আইআরআরএমে

1
সবগুলো উত্তরের জন্য ধন্যবাদ। দীর্ঘ গল্প সংক্ষিপ্ত বিষয়বস্তু প্রক্সি।
জর্জিফিলিপস

@ জর্জিফিলিপস আপনি কি সামগ্রীটি প্রক্সিংয়ের জন্য কোডটি ভাগ করবেন?
গিন্টাস_

উত্তর:


28

এই প্রশ্নের সাধারণতার ভিত্তিতে, আমি মনে করি, আপনাকে কোনও কোনও সার্ভারে আপনার নিজের এইচটিটিপিএস প্রক্সি সেটআপ করতে হবে। নিম্নলিখিত পদক্ষেপগুলি করুন:

  • আপনার প্রক্সি সার্ভার প্রস্তুত করুন - আইআইএস, অ্যাপাচি ইনস্টল করুন
  • সুরক্ষা ত্রুটিগুলি এড়াতে বৈধ এসএসএল শংসাপত্র পান (উদাহরণস্বরূপ স্টার্টস.কম থেকে বিনামূল্যে)
  • একটি মোড়ক লিখুন, যা সুরক্ষিত সামগ্রী ডাউনলোড করবে (নীচে কীভাবে হবে)
  • আপনার সাইট / অ্যাপ্লিকেশন থেকে https://yourproxy.com/?page=http://insecurepage.com পান

যদি আপনি কেবল ফাইল_জেট_কন্টেন্টস বা সিমেন্টের মাধ্যমে দূরবর্তী সাইটের সামগ্রী ডাউনলোড করেন তবে আপনার এখনও সামগ্রীতে অনিরাপদ লিঙ্ক থাকতে পারে। আপনাকে তাদের রেইগেক্স সহ খুঁজে পেতে হবে এবং প্রতিস্থাপন করতে হবে। চিত্রগুলি সমাধান করা শক্ত, তবে এখানে কার্যনির্বাহী সন্ধান পাওয়া গেছে: http://foundationphp.com/tutorials/image_proxy.php


1
এটি কাজ করবে না, যেহেতু iframe এর পিছনে অনেক পৃষ্ঠাগুলি একটি iframe- এ এমবেড করাতে চায় না এবং এভাবে এক্স-ফ্রেম-বিকল্পের শিরোনামটি SameORIGIN এ সেট করে। এমনকি আপনি যদি এই প্রক্সি ব্যবহার বাইপাস করতে পারবেন, পৃষ্ঠা /insecurepage.css মত লোড কিছু করার চেষ্টা করবে এবং আপনার ব্রাউজার অনুরোধ করবে yourdomain / insecurepage.css
প্রতিষেধক

135

দ্রষ্টব্য: এই সমাধানটি যখন 2014 সালে লেখা হয়েছিল তখন এটি কিছু ব্রাউজারে কাজ করেছিল, এটি আর কাজ করে না। iframeএইচটিটিপিএস পৃষ্ঠায় এমবেড থাকা কোনও HTTP URL- তে নেভিগেট বা পুনর্নির্দেশের আধুনিক ব্রাউজারগুলির দ্বারা অনুমোদিত নয়, এমনকি ফ্রেমটি এইচটিটিপিএস ইউআরএল দিয়ে শুরু হয়ে গেলেও।

আমি তৈরি করা সেরা সমাধানটি কেবল এসএসএল প্রক্সি হিসাবে গুগল ব্যবহার করা ...

https://www.google.com/search?q=%http://yourhttpsite.com&btnI=Im+Feeling+Lucky

পরীক্ষিত এবং ফায়ার ফক্সে কাজ করে।

অন্যান্য পদ্ধতি:

  • একটি তৃতীয় পক্ষ যেমন এম্বেড.ইলি ব্যবহার করুন (তবে এটি সত্যিকারের সুপরিচিত HTTP APIগুলির জন্যই ভাল)।

  • আপনি নিয়ন্ত্রণ করেন এমন কোনও https পৃষ্ঠায় আপনার নিজস্ব পুনর্নির্দেশ স্ক্রিপ্ট তৈরি করুন (আপেক্ষিক লিঙ্কযুক্ত পৃষ্ঠায় একটি সরল জাভাস্ক্রিপ্ট পুনর্নির্দেশের কৌশলটি করা উচিত Some

    https://example.com এর সাথে একটি ইফ্রামের সংযোগ রয়েছে ...

    https://example.com/utilities/redirect.html যার একটি সাধারণ জেএস পুনঃনির্দেশিত স্ক্রিপ্ট রয়েছে ...

    document.location.href ="http://thenonsslsite.com";

  • বিকল্পভাবে, আপনি একটি আরএসএস ফিড যুক্ত করতে পারেন বা http সাইট পড়তে এবং আপনার https সাইটের মধ্যে প্রদর্শন করতে কিছু পাঠক / পার্সার লিখতে পারেন।

  • আপনি http সাইটের মালিককে একটি এসএসএল সংযোগ তৈরি করার পরামর্শ দিতে পারেন। যদি অন্য কোনও কারণে এটি SEO বৃদ্ধি করে

আপনি যদি কোনও এসএসএল শংসাপত্র তৈরির জন্য HTTP সাইটের মালিককে না পান তবে সর্বাধিক সুরক্ষিত এবং স্থায়ী সমাধান হ'ল আপনার প্রয়োজনীয় সামগ্রীটি ধরে রাখার একটি আরএসএস ফিড তৈরি করা (সম্ভবত আপনি http সাইটে কোনও কিছু করছেন না-সম্ভবত এটি হ'ল) কোনও সিস্টেমে লগ ইন না করে বলুন)।

আসল সমস্যাটি হল https সাইটের অভ্যন্তরে http উপাদান থাকা কোনও সুরক্ষা সমস্যার প্রতিনিধিত্ব করে। এই সুরক্ষা ঝুঁকির আশেপাশে কোনও পুরোপুরি কোশের উপায় নেই তাই উপরেরগুলি কেবলমাত্র বর্তমান কাজের আশপাশে।

দ্রষ্টব্য, আপনি বেশিরভাগ ব্রাউজারগুলিতে এই সুরক্ষা পরিমাপটি অক্ষম করতে পারেন (নিজেই, অন্যদের জন্য নয়) আরও মনে রাখবেন যে এই 'হ্যাকগুলি' সময়ের সাথে অচল হয়ে যেতে পারে।


10
দুর্দান্ত উত্তর, ধন্যবাদ। ক্রোমে আপনাকে জানাতে জেএস পুনঃনির্দেশ পদ্ধতিটি কার্যকর হয় না কেবল পরিবর্তনকে বাধা দেয় (যেমন আপনি যখন এটি সাধারণত লোড করার চেষ্টা করেন তখন তা ঘটে)।
জর্জিফিলিপস 3:54

9
পুনর্নির্দেশ কৌশলটি কেবল ফায়ারফক্সে কাজ করবে বলে মনে হচ্ছে। ক্রোম এখনও অনিরাপদ সামগ্রী লোড করার বিষয়টি অস্বীকার করে। অন্য কোন পরিচিত workaround আছে?
আন্দ্রেয়াস গহর

47
কেবলমাত্র এটিই সিগন্যাল করতে চেয়েছিল যে "আপনার দ্বারা নিয়ন্ত্রিত কোনও https পৃষ্ঠায় আপনার নিজের পুনর্নির্দেশের স্ক্রিপ্ট তৈরি করুন" পদ্ধতিটি ক্রোম (e | ium) এবং ফায়ারফক্সের এমনকি জেএস ব্যবহার করে বর্তমান সংস্করণগুলির সাথে কাজ করে না।
কাকো-নাওয়াও

17
এই উত্তরটি আজ পর্যন্ত অবৈধ, অন্য কোনও সমাধান
samdd

22
উত্তরের 'অবনমিত' হিসাবে লেবেলযুক্ত একটি বিকল্প থাকা উচিত। আপনি সমস্ত মন্তব্য না পড়লে এটি বিভ্রান্তি সৃষ্টি করে।
নিতিন

28

আমি জানি এটি একটি পুরানো পোস্ট, তবে আর একটি সমাধান হ'ল সিআরএল ব্যবহার করা, উদাহরণস্বরূপ:

redirect.php:

<?php
if (isset($_GET['url'])) {
    $url = $_GET['url'];
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;
}

তারপরে আপনার আইফ্রেমে ট্যাগে এমন কিছু:

<iframe src="/redirect.php?url=http://www.example.com/"></iframe>

ধারণাটি চিত্রিত করার জন্য এটি কেবলমাত্র একটি ন্যূনতম উদাহরণ - এটি কোনও ইউআরএল স্যানিটাইজ করে না, বা অন্য কাউকে তাদের নিজস্ব উদ্দেশ্যে redirect.php ব্যবহার করা বাধা দেয় না। আপনার নিজের সাইটের প্রসঙ্গে এই বিষয়গুলি বিবেচনা করুন।

উল্টোদিকে, এটি আরও নমনীয়। উদাহরণস্বরূপ, আপনি কার্ল'ড $ ডেটার কিছু বৈধতা যুক্ত করতে পারেন এটি নিশ্চিত করার জন্য এটি প্রদর্শিত হওয়ার আগে আপনি যা চান তা নিশ্চিত করতে - উদাহরণস্বরূপ, এটি 404 নয় তা নিশ্চিত করার জন্য পরীক্ষা করুন এবং যদি এটির নিজস্ব বিকল্প সামগ্রী প্রস্তুত থাকে তবে হয়।

প্লাস - আমি গুরুত্বপূর্ণ কোনও কিছুর জন্য জাভাস্ক্রিপ্ট পুনর্নির্দেশের উপর নির্ভর করতে একটু ক্লান্ত

চিয়ার্স!


4
এটি বেশ কার্যকর, তবে সাইটের অভ্যন্তরীণ লিঙ্কগুলি অবৈধ হয়ে উঠছে। উদাহরণস্বরূপ, আমার কাছে একটি ডোমেন example.comরয়েছে যার একটি এসএসএল রয়েছে। আমি একটি ইফ্রেমে এম্বেড করছি example.netযার সাথে কোনও এসএসএল নেই। example.comমত একটি লিঙ্ক আছে href="https://stackoverflow.com/path/file.html"এবং যখন এটি ক্লিক, এটা যেমন খুলছে https://example.com/path/file.htmlপরিবর্তেhttp://example.net/path/file.html
Sibidharan

1
লিঙ্কটি আপেক্ষিক হতে পারে না যদি আপনি এটি কাজ করতে চান। অন্য কথায়, href এর মধ্যে পুরো URL নির্দিষ্ট করুন। এটি যদি গতিশীল হয় তবে জাভাস্ক্রিপ্টের পাশাপাশি প্রতিটি সার্ভারের পাশের ইউআরএল প্রতিটি বিভাগকে দখল করার জন্য গ্রন্থাগার রয়েছে।
অ্যান্টনি ম্যাসন

iframe অধীনে লক্ষ্য সাইটের সিএসএস নষ্ট হয়ে গেছে। দয়া করে চেক করুন
রাজু আপনার পেপ

14

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">মাথায় যোগ করুন

তথ্যসূত্র: http://thehackernews.com/2015/04/disable-mixed-content-warning.html

ব্রাউজারের সামঞ্জস্যতা: http://caniuse.com/#feat=upgradeinsecurerequests


23
এই সমাধানটি আপনাকে https সাইটে http সামগ্রীর পরিবেশন করতে দেয় না। এই সবগুলি হ'ল জোর করে HTTP অনুরোধগুলি https অনুরোধ হিসাবে। যদি https এ যদি সংস্থানটি না থাকে তবে আপনি কেবল তার পরিবর্তে একটি 404 ত্রুটি পাবেন।
ফেলিক্স

এটি আসলে আমার প্রয়োজনের জন্য কমপক্ষে কাজ করে .. এটি ফায়ারফক্সের সাথে পরীক্ষিত এবং কাজ করা নিশ্চিত করে। আমার ইস্যুটি হ'ল সোর্স ইউআরএল এইচটিটিপিএস সম্মতি নয় যখন আমার নিজের ওয়েবসাইটটি এইচটিটিপিএস ব্যবহার করছে।
ফার্নান ভেসিনা

ক্রোমের সংস্করণ 76.0.3809.132 (অফিসিয়াল বিল্ড)
মোহাম্মদ আজহারউদ্দিন

8

কোনও https পৃষ্ঠায় অ সুরক্ষিত সামগ্রী প্রদর্শন করার চেষ্টা করার সময় আপনি বেশিরভাগ ব্রাউজারগুলিতে অবরুদ্ধ সামগ্রীর সতর্কতা পাবেন। আপনি যদি এসএসএল এর পিছনে নেই এমন সাইটগুলি থেকে এম্বেড করতে চান তবে এটি জটিল। আপনি সতর্কতাগুলি বন্ধ করতে পারেন বা আপনার নিজের ব্রাউজারে থাকা ব্লকিংটি সরিয়ে ফেলতে পারেন তবে অন্যান্য দর্শকদের জন্য এটি একটি সমস্যা।

এটি করার একটি উপায় হ'ল বিষয়বস্তু সার্ভারের দিকটি লোড করা এবং চিত্রগুলি এবং অন্যান্য জিনিসগুলি আপনার সার্ভারে সংরক্ষণ করা এবং সেগুলি https থেকে প্রদর্শন করা।

আপনি এম্বেড.লির মতো একটি পরিষেবা ব্যবহার করে চেষ্টা করতে পারেন এবং তাদের মাধ্যমে সামগ্রীটি পেতে পারেন। Https এর পিছনে সামগ্রীটি পাওয়ার জন্য তাদের সমর্থন রয়েছে।


যদি আপনি বিষয়বস্তুটি স্ক্র্যাপ করে থাকেন এবং আপনার সাইটে দেখান তবে সেগুলি ক্রস সাইট স্ক্রিপ্টিংয়ের ঝুঁকি Always সুতরাং godশ্বরের সমাধানটি হ'ল পৃথক ইউআরএলটিতে সামগ্রীটি স্ক্র্যাপ করা এবং https এর মাধ্যমে সেই url থেকে কোনও আইফ্রেমে ডেটা উপস্থাপন করা। এইভাবে আপনি আপনার মেইনসাইট এবং সেশন হাইজ্যাকিংয়ের ক্রসসাইট স্ক্রিপ্টিং আটকাচ্ছেন।
অ্যাডেল্যাডে

6

এসএসএল প্রক্সি হিসাবে গুগল ব্যবহার করা বর্তমানে কাজ করছে না,

কেন?

আপনি যদি গুগল থেকে কোনও পৃষ্ঠা খোলেন, আপনি x-frame-optionsশিরোনামে একটি ক্ষেত্র খুঁজে পাবেন । গুগল রেসপন্স শিরোনাম

এক্স-ফ্রেম-বিকল্পগুলি এইচটিটিপি রেসপন্স শিরোনামটি একটি ব্রাউজারকে একটিতে কোনও পৃষ্ঠা রেন্ডার করার অনুমতি দেওয়া উচিত কিনা তা নির্দেশ করতে ব্যবহার করা যেতে পারে <frame>, <iframe>বা <object>। সাইটগুলি এটিকে ক্লিকের জ্যাকিং আক্রমণগুলি এড়াতে ব্যবহার করতে পারে, নিশ্চিত করে তাদের সামগ্রী অন্য সাইটে এম্বেড করা হয়নি।

(এমডিএন থেকে উদ্ধৃতি)

একটি সমাধান

নীচে এই সমস্যার জন্য আমার চারপাশের কাজগুলি রয়েছে:

AWS S3 এ সামগ্রী আপলোড করুন এবং এটি সংস্থানটির জন্য একটি https লিঙ্ক তৈরি করবে।
বিজ্ঞপ্তি: এইচটিএমএল ফাইলটিকে প্রত্যেকে দেখার অনুমতি দেওয়ার জন্য অনুমতি সেট করুন।

এর পরে, আমরা srcএটি https ওয়েবসাইটগুলিতে iframe হিসাবে ব্যবহার করতে পারি । ডেস্কটপ AWS


2

আপনি পিএইচপি বা অন্য কোনও সার্ভার সাইড ল্যাঙ্গুয়েজে যা যা প্রয়োজন তা স্ক্র্যাপ করার চেষ্টা করতে পারেন, তারপরে স্ক্র্যাপযুক্ত সামগ্রীতে iframe লাগিয়ে দিতে পারেন। এখানে পিএইচপি সহ একটি উদাহরণ রয়েছে:

scrapedcontent.php:

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

index.html:

<iframe src="scrapedcontent.php"></iframe>

3
আপনি কীভাবে চিত্রগুলি, জেএস এবং সিএসএস ফাইল, হাইপারলিঙ্কস এবং এজেএক্স অনুরোধগুলি পরিচালনা করবেন?
dotancohen

@ ডটানকোহেন আপনি ঠিক বলেছেন, এটি কোনও নিখুঁত সমাধান নয়, তবে আমি মনে করি এটি এই পরিস্থিতির জন্য সেরা। কিছু সাইট আপনি আলোচিত সমস্যার মধ্যে চলে না।
অনুদান

1
এটি কাজ করে, তবে এটি কার্যকরভাবে সামগ্রীতে দ্বিগুণ লোড হচ্ছে এবং তাই আপনার সার্ভারের স্ক্র্যাপ হিসাবে সময় লোড করার পরে এবং সামগ্রীটি পুনরায় পরিবেশন করে ...
ক্রিস্টোকিভি

2

আপনাকে যা করতে হবে তা হ'ল কেবলমাত্র প্রক্সি সার্ভার হিসাবে গুগল ব্যবহার করা।

https://www.google.ie/gwt/x?u=laysYourHttpLink]

<iframe src="https://www.google.ie/gwt/x?u=[Your http link]"></frame>

এটা আমার জন্য কাজ করেছে।

ক্রেডিট: - https://www.wikihow.com/Use-Google-As-a-Proxy


আপনি যেখানে এটি ব্যবহার করার চেষ্টা করছেন।
স্টার টেকট্রিক্স

এটা কাজ করে না.
ইগোপিংভিনা

1

আপনার নিজস্ব HTTPS থেকে HTTP বিপরীত প্রক্সি ব্যবহার করুন।

যদি আপনার ব্যবহারের ক্ষেত্রে কয়েকটি এম্বেড করার জন্য খুব কমই ইউআরএল পরিবর্তন করে থাকে তবে iframeআপনি কেবল নিজের সার্ভারে এটির জন্য একটি বিপরীত প্রক্সি সেট আপ করতে পারেন এবং এটি কনফিগার করতে পারেন যাতে httpsআপনার সার্ভারের একটি ইউআরএল একটিতে ম্যাপ করেhttp ইউআরএল প্রক্সি সার্ভারের URL এ । যেহেতু একটি বিপরীত প্রক্সি পুরোপুরি সার্ভারসাইড, তাই ব্রাউজারটি আবিষ্কার করতে পারে না যে এটি বাস্তব ওয়েবসাইটের প্রক্সিটির সাথে "কেবল" কথা বলছে, এবং তাই প্রক্সিটির সংযোগটি সঠিকভাবে SSL ব্যবহার করে বলে অভিযোগ করবে না।

উদাহরণস্বরূপ যদি আপনি Apache2 কে আপনার ওয়েবসারভার হিসাবে ব্যবহার করেন তবে বিপরীত প্রক্সি তৈরি করতে এই নির্দেশাবলী দেখুন ।


1
mitmproxyপ্রোবাইজিং সিস্টেম নয়, একটি ডিবাগিং সরঞ্জাম। ngrokটানেলিং পরিষেবা, বেশিরভাগ ডেভলপমেন্ট সার্ভারের জন্য, এটি কীভাবে এটি এর জন্য কার্যকর হতে পারে তা আমি বুঝতে পারি না।
kolen

@ কোলেন এটি সরঞ্জামগুলি সম্পর্কে নয়, এটির জন্য একটি বিপরীত প্রক্সি ব্যবহার করার ধারণা সম্পর্কে, অন্য উত্তরে এখনও উল্লেখ করা হয়নি। এখনই অ্যাপাচি তে পরিবর্তন করা, যা বিপরীত প্রক্সি করার আরও সাধারণ উপায়।
ট্যানিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.