අන්තර්ගත අලෙවි

Iframe බිඳීම: ඔබේ අන්තර්ගතය අනවසරයෙන් Iframing නතර කරන්නේ කෙසේද?

මගේ වෙබ් අඩවියට පැමිණි අමුත්තෙක් වරක් මගේ සබැඳියක් ක්ලික් කළ විට මට දන්වා සිටියේය ට්විටර්; ඔහු විශාල උත්පතනයක් සහ අනිෂ්ට කේත අනතුරු ඇඟවීමක් සමඟ මගේ වෙබ් අඩවියට ගෙන එන ලදී. කාට හරි බය වෙන්න ඒ ඇති, ඉතින් මම පරීක්ෂණ ටිකක් කරන්න පටන් ගත්තා. මගේ වෙබ් අඩවියේ කිසිදු වරදක් නැත - ගැටළුව වූයේ සබැඳියයි.

වෙනත් අඩවියක ඇති සබැඳිය ඉහළට මෙවලම් තීරුවක් නිපදවා ඇති අතර එය යටින් ඇති iframe එකක මගේ අඩවිය පූරණය කරන අතරතුර අනිෂ්ට සබැඳියක් ක්ලික් කිරීමට මිනිසුන් දිරිමත් කරයි. බොහෝ මිනිසුන්ට, මගේ වෙබ් අඩවිය අනිෂ්ට කේතය පතුරුවන බවක් පෙනෙන්නට තිබේ. මගේ වෙබ් අඩවිය iframe එකක් තුළ පටවන ඕනෑම අඩවියකට මම කැමති යැයි මම නොකියමි, එබැවින් ඕනෑම සාධාරණ ගීක් කෙනෙකු කරන දේ මම කළෙමි... මම රාමු කඩන යන්ත්‍රයක් පටවා ගත්තෙමි.

කෙසේ වෙතත්, ඔබගේ වෙබ් අඩවිය අයිෆ්‍රැම් කිරීම සැමවිටම අනිෂ්ට නොවේ. අපි මෑතකදී මෙවලමක් බෙදා ගත්තා, ස්නිප්ලි, ක්‍රියාවට ඇමතුමක් එක් කිරීමට (සීටීඒ) ඔබ බෙදාගන්නා ඕනෑම වෙබ් අඩවි සබැඳියකට. එය ඔබගේ මුළු අඩවියම iframe එකක කාවැද්දීමෙන් සහ Call-to-action සමඟින් ඔබේ අන්තර්ගතය මත div යෙදීමෙන් මෙය සිදු කරයි.

නමුත් මම මගේ අන්තර්ගතය සහ මා දැරූ උත්සාහය ගැන ඉතා විශේෂයි Martech Zone, එබැවින් සබැඳි-බෙදාගැනීමේ වේදිකාවක් සමඟ වුවද, කිසිවෙකු මගේ අන්තර්ගතය iframe කිරීමට මට අවශ්‍ය නැත. සමහර පර්යේෂණ සිදු කිරීමේදී, මෙය හැසිරවීමට ක්රම කිහිපයක් තිබේ.

ජාවාස්ක්‍රිප්ට් සමඟ ඔබේ අන්තර්ගතය ඉෆ්‍රේම් කිරීම නවත්වන්නේ කෙසේද?

මෙම ජාවාස්ක්‍රිප්ට් කේතය වත්මන් කවුළුව තිබේදැයි පරීක්ෂා කරයි (self) ඉහළම කවුළුව නොවේ (top) එය එසේ නොවේ නම්, මෙයින් අදහස් වන්නේ පිටුව රාමුවක, iframe එකක හෝ ඊට සමාන වන අතර, ස්ක්‍රිප්ටය ඉහළම කවුළුව වෙත යොමු කරයි URL එක වත්මන් කවුළුවෙන්. මෙය ඵලදායී කැඩී යයි iframe හි.

<script type='text/javascript'>
if (top !== self) top.location.href = self.location.href;
</script>

මෙම ප්රවේශයේ අවාසි කිහිපයක් තිබේ:

  1. JavaScript මත යැපීම: පරිශීලකයා JavaScript අක්‍රිය කර ඇත්නම්, මෙම ක්‍රමය ක්‍රියා නොකරයි.
  2. ප්රමාද: JavaScript ක්‍රියාත්මක වීමට පෙර සුළු ප්‍රමාදයක් ඇති විය හැකි අතර, එම කාලය තුළ ඔබේ වෙබ් අඩවියේ රාමු කළ අනුවාදය තවමත් දෘශ්‍යමාන විය හැක.
  3. හරස් සම්භවය සීමා කිරීම්: සමහර අවස්ථා වලදී, එකම මූලාරම්භ ප්‍රතිපත්තිය මෙම ස්ක්‍රිප්ටය අපේක්ෂිත පරිදි ක්‍රියා කිරීමෙන් වලක්වනු ඇත. මාපිය ලේඛනය වෙනත් වසමක තිබේ නම්, එයට ප්‍රවේශ වීමට නොහැකි විය හැකිය top.location.href.
  4. Frame-Busting-Busters සඳහා විභවය: රාමු බිඳ දැමීමේ විධානාවලි ක්‍රියා කිරීම වැළැක්විය හැකි ස්ක්‍රිප්ට් (frame-busting-busters ලෙස හැඳින්වේ) ද ඇත.

වඩා හොඳ ප්‍රවේශය වන්නේ HTTP ප්‍රතිචාර ශීර්ෂ භාවිතා කිරීමයි.

X-රාමු-විකල්ප සහ අන්තර්ගත-ආරක්ෂක-ප්‍රතිපත්ති

දෙකම X-Frame-Options සහ Content-Security-Policy (සී.එස්.පී.) යනු වෙබ් අඩවියක ආරක්ෂාව වැඩි කිරීමට භාවිතා කරන HTTP ප්‍රතිචාර ශීර්ෂ වේ. ඒ සෑම එකක්ම තරමක් වෙනස් අරමුණු සඳහා සේවය කරන අතර විවිධ මට්ටමේ නම්‍යශීලී බවක් ඇත.

X-Frame-Options ඔබේ වෙබ් අඩවිය a තුළට කාවැද්දීමට හැකිද යන්න පාලනය කිරීමට විශේෂයෙන් නිර්මාණය කර ඇති පැරණි HTTP ශීර්ෂයකි <frame>, <iframe>, <embed>, හෝ <object> වෙනත් වෙබ් අඩවියක. එයට හැකි විධාන තුනක් ඇත:

  1. DENY - වෙබ් අඩවිය එසේ කිරීමට උත්සාහ කළත්, පිටුව රාමුවක් තුළ ප්‍රදර්ශනය කළ නොහැක.
  2. SAMEORIGIN - පිටුව ප්‍රදර්ශනය කළ හැක්කේ එම පිටුවට සමාන සම්භවයක් ඇති රාමුවක පමණි.
  3. ALLOW-FROM uri - පිටුව පෙන්විය හැක්කේ නිශ්චිත මූලාරම්භයේ රාමුවක පමණි.

කෙසේ වුවද, X-Frame-Options විවිධ ප්‍රභවයන්ගෙන් රාමු කිරීමට ඉඩ දීම හෝ උප ඩොමේන් සඳහා වයිල්ඩ්කාඩ් භාවිතා කිරීම වැනි වඩාත් සංකීර්ණ අවස්ථා හැසිරවිය නොහැකි නිසා සීමා වේ. සියලුම බ්‍රව්සර් සහාය නොදක්වයි ALLOW-FROM නියෝගය.

Content-Security-Policy, අනෙක් අතට, වඩාත් නම්‍යශීලී සහ බලවත් HTTP ශීර්ෂයකි. එය සෑම දෙයක්ම කළ හැකි අතර X-Frame-Options කළ හැකි සහ තවත් බොහෝ දේ, එහි මූලික අරමුණ වන්නේ හරස්-අඩවි ස්ක්‍රිප්ටින් ඇතුළු පුළුල් පරාසයක කේත එන්නත් ප්‍රහාර වැළැක්වීමයි (වු XSS) සහ clickjacking. එය ක්‍රියා කරන්නේ විශ්වාසදායක අන්තර්ගත මූලාශ්‍රවල සුදු ලැයිස්තුවක් (ස්ක්‍රිප්ට්, මෝස්තර, රූප, ආදිය) සඳහන් කිරීමෙනි.

රාමු පාලනය කිරීම සඳහා, CSP භාවිතා කරයි frame-ancestors නියෝගය. ඔබට බහු වසම් සහ Wildcard subdomains ඇතුළුව බහු මූලාශ්‍ර සඳහන් කළ හැක. මෙන්න උදාහරණයක්:

cssCopy codeContent-Security-Policy: frame-ancestors 'self' yourdomain.com *.domain2.com;

මෙමඟින් පිටුව එහිම වෙබ් අඩවියක රාමු කිරීමට ඉඩ සලසයි ('self'), මත yourdomain.com, සහ ඕනෑම උප වසමක් මත domain2.com.

සඳහා ආදේශකයක් ලෙස CSP නිර්දේශ කරනු ලැබේ X-Frame-Options, එය සෑම දෙයක්ම හැසිරවිය හැකි නිසා X-Frame-Options කළ හැකි, සහ තවත් බොහෝ දේ. බොහෝ නවීන බ්‍රව්සර් CSP සඳහා සහය දක්වන අතර, එයට සම්පූර්ණයෙන් සහය නොදක්වන පැරණි හෝ අඩු පොදු බ්‍රව්සර් තවමත් තිබිය හැක.

HTML සමඟ ඔබේ අන්තර්ගතය Iframing නවත්වන්නේ කෙසේද?

ඔබගේ අන්තර්ගතය iframe කිරීමේ හැකියාව අක්‍රිය කරන යෙදවිය හැකි අන්තර්ගත-ආරක්ෂක-ප්‍රතිපත්ති මෙටා ටැගයක් දැන් ඇත:

<meta http-equiv="Content-Security-Policy" content="frame-ancestors 'self' yourdomain.com">

සියලුම බ්‍රවුසරයන් එයට ගරු නොකරන නිසා HTML මෙටා ටැගයේ සඵලතාවය සීමා වේ Content-Security-Policy මෙටා ටැග් එකක් භාවිතයෙන් සකසන විට.

HTTP ශීර්ෂයන් සමඟ ඔබේ අන්තර්ගතය Iframing නවත්වන්නේ කෙසේද?

HTTP ශීර්ෂයන් භාවිතා කිරීම වඩා හොඳය X-Frame-Options or Content-Security-Policy රාමු කිරීම පාලනය කිරීමට. මෙම විකල්ප වඩාත් විශ්වාසදායක සහ ආරක්ෂිත වන අතර ජාවාස්ක්‍රිප්ට් අක්‍රිය වුවද ක්‍රියා කරයි. ජාවාස්ක්‍රිප්ට් ක්‍රමය භාවිතා කළ යුත්තේ ඔබට HTTP ශීර්ෂ සැකසීමට සේවාදායකය මත පාලනයක් නොමැති නම් පමණක් අවසාන විසඳුම ලෙස පමණි. එක් එක් උදාහරණයක් සඳහා, ප්රතිස්ථාපනය කරන්න yourdomain.com ඔබගේ සැබෑ වසම සමඟ.

Apache - ඔබගේ වෙනස් කරන්න .htaccess ගොනුව පහත පරිදි වේ:

Header always set X-Frame-Options SAMEORIGIN
Header always set Content-Security-Policy "frame-ancestors 'self' yourdomain.com"

Nginx - ඔබගේ සේවාදායක වාරණ පහත පරිදි වෙනස් කරන්න:

add_header X-Frame-Options SAMEORIGIN;
add_header Content-Security-Policy "frame-ancestors 'self' yourdomain.com";

IIS - පහත සඳහන් දෑ ඔබගේ එකට එකතු කිරීමෙන් මෙය කරන්න web.config ගොනුව:

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Content-Security-Policy" value="frame-ancestors 'self' yourdomain.com" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

වර්ඩ්ප්රෙස් - ඔබගේ functions.php ගොනුවට මෙම කේතය එක් කිරීමෙන් මෙය කරන්න:

function add_security_headers() {
  header('X-Frame-Options: SAMEORIGIN');
  header("Content-Security-Policy: frame-ancestors 'self' yourdomain.com");
}
add_action('send_headers', 'add_security_headers');

මෙම වින්‍යාස කිරීම් මඟින් ඔබගේ පිටුව ඔබ සඳහන් කරන නිශ්චිත වසමෙහි iframes තුළ පමණක් කාවැද්දීමට ඉඩ දෙනු ඇත, කිසිදු වසම් උපවසම් මත නොවේ. ඔබට ඇතැම් උප වසම්වලට ඉඩ දීමට අවශ්‍ය නම්, ඔබට ඒවා පැහැදිලිව ලැයිස්තුගත කිරීමට සිදුවේ subdomain1.yourdomain.com subdomain2.yourdomain.com, සහ යනාදි.

බහු වසම් වලින් ඔබේ අන්තර්ගතය Iframing කිරීමට ඉඩ දෙන්න

ඔබට Content-Security-Policy HTTP ප්‍රතිචාර ශීර්ෂය සහ රාමු-මුතුන් මිත්තන්ගේ විධානය සමඟින් බහු වසම් සඳහන් කළ හැක. ඉඩක් එක් එක් වසම වෙන් කළ යුතුය. මෙන්න උදාහරණයක්:

Content-Security-Policy: frame-ancestors 'self' domain1.com domain2.com domain3.com;

Apache - ඔබගේ වෙනස් කරන්න .htaccess ගොනුව පහත පරිදි වේ:

Header always set X-Frame-Options SAMEORIGINHeader always set Content-Security-Policy "frame-ancestors 'self' domain1.com domain2.com domain3.com"

Nginx - ඔබගේ සේවාදායක වාරණ පහත පරිදි වෙනස් කරන්න:

add_header X-Frame-Options SAMEORIGIN;add_header Content-Security-Policy "frame-ancestors 'self' domain1.com domain2.com domain3.com";

IIS - පහත සඳහන් දෑ ඔබගේ එකට එකතු කිරීමෙන් මෙය කරන්න web.config ගොනුව:

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
      <add name="Content-Security-Policy" value="frame-ancestors 'self' domain1.com domain2.com domain3.com" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

Wildcard Domain එකකින් ඔබේ අන්තර්ගතය Iframing කිරීමට ඉඩ දෙන්න

ඔබට සියලු උප ඩොමේන් සඳහා Wildcard එකක් ද නියම කළ හැක Content-Security-Policy HTTP ප්‍රතිචාර ශීර්ෂය සහ රාමු-මුතුන් මිත්තන්ගේ නියෝගය. සඳහා උදාහරණ මෙන්න Content-Security-Policy යාවත්කාලීන කළ යුතු කේතය:

Content-Security-Policy: frame-ancestors 'self' *.yourdomain.com;

Apache - ඔබගේ වෙනස් කරන්න .htaccess ගොනුව පහත පරිදි වේ:

Header always set Content-Security-Policy "frame-ancestors 'self' *.yourdomain.com"

Nginx - ඔබගේ සේවාදායක වාරණ පහත පරිදි වෙනස් කරන්න:

add_header Content-Security-Policy "frame-ancestors 'self' *.domain1.com *.domain2.com *.domain3.com";

IIS - පහත සඳහන් දෑ ඔබගේ එකට එකතු කිරීමෙන් මෙය කරන්න web.config ගොනුව:

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Content-Security-Policy" value="frame-ancestors 'self' *.yourdomain.com" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

Douglas Karr

Douglas Karr හි CMO වේ විවෘත INSIGHTS සහ නිර්මාතෘ Martech Zone. ඩග්ලස් සාර්ථක MarTech ආරම්භක දුසිම් ගණනකට උදව් කර ඇත, මාර්ටෙක් අත්පත් කර ගැනීම් සහ ආයෝජන සඳහා ඩොලර් 5 කට වඩා වැඩි කඩිසරකමකට සහාය වී ඇත, සහ ඔවුන්ගේ විකුණුම් සහ අලෙවිකරණ උපාය මාර්ග ක්‍රියාත්මක කිරීමට සහ ස්වයංක්‍රීය කිරීමට සමාගම්වලට දිගටම සහාය වේ. ඩග්ලස් යනු ජාත්‍යන්තරව පිළිගත් ඩිජිටල් පරිවර්තනයක් වන අතර MarTech විශේෂඥයෙකු සහ කථිකයෙකි. ඩග්ලස් ඩමිගේ මාර්ගෝපදේශකයෙකු සහ ව්‍යාපාර නායකත්ව පොතක ප්‍රකාශිත කතුවරයෙකි.

සබැඳි පුවත්

ඉහළට බොත්තම
සමීප

Adblock අනාවරණය විය

Martech Zone වෙළඳ දැන්වීම් ආදායම, අනුබද්ධ සබැඳි සහ අනුග්‍රාහකත්ව හරහා අපි අපගේ වෙබ් අඩවියෙන් මුදල් උපයන නිසා කිසිදු වියදමකින් තොරව ඔබට මෙම අන්තර්ගතය ලබා දීමට හැකි වේ. ඔබ අපගේ වෙබ් අඩවිය නරඹන විට ඔබේ දැන්වීම් අවහිර කරන්නා ඉවත් කරන්නේ නම් අපි අගය කරන්නෙමු.