Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ホスティングにおける安定運用のためのアクセスコントロール手法
Search
Takuma Kume
October 07, 2017
Technology
3
2.6k
ホスティングにおける安定運用のためのアクセスコントロール手法
ペパボ・はてな技術大会〜インフラ技術基盤〜@福岡
「ホスティングにおける安定運用のためのアクセスコントロール手法」
https://pepabo.connpass.com/event/65932/
Takuma Kume
October 07, 2017
Tweet
Share
More Decks by Takuma Kume
See All by Takuma Kume
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
62
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
600
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
2.1k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
490
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
takumakume
0
4.9k
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
1
2.2k
ホスティング事業におけるSREの取り組みとSREの面白さ/SRE Efforts in the Hosting Business and the Interest of SRE
takumakume
1
2.5k
GitOpsで実現するPull Request毎のプレビュー環境/Preview environment for each Pull Request by GitOps
takumakume
0
1.7k
Goでkubernetes operatorを実装してアプリのプレビュー環境を作る/go-kubernetes-operator
takumakume
0
170
Other Decks in Technology
See All in Technology
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
2
360
Amazon Q Developerの無料利用枠を使い倒してHello worldを表示させよう!
nrinetcom
PRO
2
110
Amazon Aurora のバージョンアップ手法について
smt7174
2
140
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
350
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.1k
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
180
AWSではじめる Web APIテスト実践ガイド / A practical guide to testing Web APIs on AWS
yokawasa
8
680
php-conference-nagoya-2025
fuwasegu
0
150
AWS Well-Architected Frameworkで学ぶAmazon ECSのセキュリティ対策
umekou
2
140
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
650
Share my, our lessons from the road to re:Invent
naospon
0
140
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
210
Featured
See All Featured
Fireside Chat
paigeccino
34
3.2k
Speed Design
sergeychernyshev
27
810
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Code Reviewing Like a Champion
maltzj
521
39k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Designing for Performance
lara
604
68k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Embracing the Ebb and Flow
colly
84
4.6k
A Tale of Four Properties
chriscoyier
158
23k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Building Applications with DynamoDB
mza
93
6.2k
Transcript
ٱถഅ(.01FQBCP *OD ϖύϘɾͯͳٕज़େձʙΠϯϑϥٕज़ج൫ʙ ϗεςΟϯάʹ͓͚Δ҆ఆӡ༻ͷͨΊͷ ΞΫηείϯτϩʔϧख๏
ࣗݾհ ٱถ അ (@takumakume) 20164݄͔ΒϖύϘʹೖࣾ ΠϯϑϥΤϯδχΞ
ϩϦϙοϓʂ ֹ݄ԁ͔Βར༻Ͱ͖Δʂ ສαΠτҎ্ӡ༻தʂ ඵؒສઍϦΫΤετΛॲཧʂ
ϗεςΟϯάʹ͓͚Δ҆ఆӡ༻ͷͨΊͷ ΞΫηείϯτϩʔϧख๏
࣍ wϗεςΟϯάαʔϏεͷ҆ఆӡ༻͕؆୯Ͱͳ͍ཧ༝ w͜Ε·ͰͷΞΫηείϯτϩʔϧख๏ͷհͱ՝ w՝Λղܾͨ͠৽͍͠ΞΫηείϯτϩʔϧख๏ͷհ w·ͱΊ
ຊͷεϥΠυͰɺߴෛՙͷαΠτʹରͯ͠ ΞΫηε੍ޚΛ࣮ࢪ͢Δख๏ʹ͍ͭͯͷհΛ ͠·͢ɻ ͯ͢ͷతɺαʔϏεͷ҆ఆӡ༻ͱɺΑΓ ଟ͘ͷ͓٬༷͕շదʹ͝ར༻͍͚ͨͩΔΑ͏ʹ ͢Δ͜ͱ͕೦಄ʹ͋Γ·͢ʂ
ϗεςΟϯάαʔϏεͷ҆ఆӡ༻͕ ؆୯Ͱͳ͍ཧ༝
ͦͷલʹɺͱ͋Δ8FCαʔϏεͷαʔόͷ $16༻ΛݟͯΈ·͢ɻ
$16༻ ͱ͋Δ8FCαʔϏεͷ$16༻ ࣌ ࣌ ࣌
࣌ ࣌ ࣌ ΰʔϧσϯλΠϜ னٳΈ όονॲཧ ͱ͋Δ8FCαʔϏεͷ$16༻
ΰʔϧσϯλΠϜ னٳΈ όονॲཧ $16༻ 8FCαʔϏεͷ߹λʔήοτ࣮Λ Ѳ͍ͯ͠ΔͨΊɺΛ૾͍͢͠
ͰɺϗεςΟϯάαʔόͷ $16༻ΛݟͯΈ·͢ɻ
࣌ ࣌ ࣌ ࣌ ϗεςΟϯάαʔόͷ$16༻
ϗεςΟϯάαʔόͷ$16༻ Կ͔͕ಈ͍͍ͯΔ
ϗεςΟϯάαʔόͷ߹ɺ ༷ʑͳϓϩάϥϜ͕࣮ߦ͞ΕΔͨΊෛՙͷ ݪҼ༷ʑͰରԠ͠ʹ͍͘
༷ʑͳෛՙͷݪҼ ੬ऑੑ ੬ऑੑͷ͋Δ$.4ͳͲΛܦ༝ͯ͠ෆਖ਼ͳॲཧ͕࣮ߦ͞ΕΔɻ ߈ܸ αʔόͨΓͷαΠτ͕ଟ͍ͨΊ߈ܸͷରʹͳΓ͍͢ɻ ϢʔβϓϩάϥϜ ϗεςΟϯάͰࣗ༝ʹϓϩάϥϜͷ࣮ߦ͕Մೳͳڥɻ େྔʹϦιʔεΛফඅ͢ΔϓϩάϥϜ͕࣮ߦ͞ΕΔ͜ͱ͕͋Δɻ ͳͲʜ
͜ΕΒʹରͯ͠Կͷରࡦ͠ͳ͍߹ αʔόߴෛՙͳঢ়ଶͱͳΓ αʔϏεͷఏڙ࣭͕Լͯ͠͠·͏
͜Ε·ͰͷΞΫηείϯτϩʔϧख๏
NPE@WIPTU@NBYDMJFOUT "QBDIFIUUQE 7JSUVBM)PTU # httpd.conf <VirtualHost *> DocumentRoot /path/to/web ServerName
www.example.jp VhostMaxClients 3 </VirtualHost> w"QBDIFͷϞδϡʔϧ w7JSUVBM)PTUຖͷ࠷େಉ࣌ଓΛ੍ݶ͢Δ͜ͱ͕Ͱ͖Δ 8FCΞΫηε
NPE@WIPTU@NBYDMJFOUT "QBDIFIUUQE 7JSUVBM)PTU ಛఆͷ7JSUVBM)PTUͷภΓΛࢭ ॏ͍εΫϦϓτͷଟॏ࣮ߦΛࢭ 8FCΞΫηε w"QBDIFͷϞδϡʔϧ w7JSUVBM)PTUຖͷ࠷େಉ࣌ଓΛ੍ݶ͢Δ͜ͱ͕Ͱ͖Δ
NPE@WIPTU@NBYDMJFOUTʹΑΔ੍ݶͷࣗಈԽγεςϜ 04 IUUQE MPH DPOpH (PMBOH ࣗಈ੍ޚγεςϜ ᶃࢹ ᶄղੳ
ᶅઃఆ ᶆө ࢹ ɾϩʔυΞϕϨʔδ ɾ)551Ϩεϙϯε ղੳ ઃఆ ݪҼαΠτʹಉ࣌ଓ੍ݶΛઃఆ ө IUUQEͷHSBDFGVMSFTUBSUΛ࣮ߦ ϩά͔ΒෛՙݪҼͷαΠτΛಛఆ ෛՙͷߴ͍αΠτʹࣗಈతʹ੍ݶΛߦ͏γεςϜΛ(PMBOHͰ։ൃ
͜Ε͚ͩͰߴෛՙରࡦ͕ ෆेͩͬͨ
՝
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ өʹHSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧॏ͘ϨεϙϯεԆͷݪҼʹ ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ өॲཧ
ಉ࣌ଓ੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ࣮ࢪ͍ͨ͠ɻ ੍ݶखஈ
ཁٻ͕૿͑Δʹ࿈ΕͯطଘͷιϑτΣΞ ͷΈͰ՝Λղܾ͠ʹ͘͘ͳͬͨ
͜Ε·Ͱɺ՝͕͋Δͷͷ ίʔυʹམͱ͠ࠐΜͰ͍͘εϐʔυ͕ ͔ͬͨɻ
ӡ༻πʔϧʑਐԽ͕ඞཁͰ͋Δ
࠷ॳ͔ΒᘳͳιϑτΣΞΛ࡞Δ ͜ͱͰ͖ͳ͍ ਐԽ͍ͤ͢͞ج൫Λ࡞Γ͍ͨʂ
NPE@NSVCZ ✕
NPE@NSVCZͱʁ wฐࣾͷ!NBUTVNPUPSZ͕։ൃ͍ͯ͠ΔIUUQEͷϞδϡʔϧ wϓϩηεͷىಈϦΫΤετͷλΠϛϯάͳͲΛܖػʹ NSVCZͷεΫϦϓτΛ࣮ߦͰ͖Δɻ wϦΫΤετύϥϝʔλΛऔಘͨ͠Γҙͷεςʔλείʔ υΛฦͨ͠ΓͰ͖Δɻ
NPE@NSVCZΛબΜͩཧ༝
NPE@NSVCZΛબΜͩཧ༝ ߴͳॲཧ$ݴޠͷϥΠϒϥϦΛ͍͍ͨ߹NSCHFN ͱ͍͏֦ுػೳΛͬͯ$ݴޠͰͷ࣮ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ͍Λ ։ൃޮ͕Α͍3VCZߏจͰΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ ʢैདྷ.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ
NPE@NSVCZΛબΜͩཧ༝ NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ͍Λ3VCZߏจͰ ΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ3VCZ։ൃޮ͕ྑ͍ɻ ʢैདྷ.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ ߴͳॲཧ$ݴޠͷϥΠϒϥϦΛ͍͍ͨ߹NSCHFN ͱ͍͏֦ுػೳΛͬͯ$ݴޠͰͷ࣮ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ ֦ுੑɺอकੑΛଛͳΘͣ ޮΑ͘։ൃՄೳ
NPE@NSVCZΛબΜͩཧ༝ NPE@NSVCZΛ༻͍Δ͜ͱͰIUUQEͷৼΔ͍Λ3VCZߏจͰ ΧελϚΠζ͢Δ͜ͱ͕Ͱ͖Δɻ3VCZ։ൃޮ͕ྑ͍ɻ ʢैདྷ.PEVMFΛ$ݴޠͰ։ൃ͢Δඞཁ͕͋ͬͨɻʣ ߴͳॲཧ$ݴޠͷϥΠϒϥϦΛ͍͍ͨ߹NSCHFN ͱ͍͏֦ுػೳΛͬͯ$ݴޠͰͷ࣮ՄೳͱͳΔɻ ։ൃऀͷ!NBUTVNPUPSZ͕ࡏ੶͍ͯ͠Δɻ ਐԽ͠ଓ͚Δ͜ͱ͕Ͱ͖Δ
NPE@NSVCZΛ࣠ͱͨ͠ ৽͍͠ΞΫηείϯτϩʔϧख๏
IUUQBDDFTTMJNJUFSͱ͍͏ ιϑτΣΞͷΞʔΩςΫνϟΛϕʔεʹ ৽͍͠ΞΫηείϯτϩʔϧج൫Λ։ൃ
IUUQBDDFTTMJNJUFS NSVCZΛͬͯϦΫΤετύϥϝʔλΛݩʹಉ࣌ଓΛΧϯτ͢Δ IUUQE NPE@NSVCZ ᶃlFYBNQMFDPNzʹΞΫηε 1)1$(*ͳͲ ,74 ,FZ FYBNQMFDPN
7BMVF ಉ࣌ଓ Χϯλʔ ᶄΠϯΫϦϝϯτ ᶅॲཧ ᶆσΫϦϝϯτ ͜ͷΑ͏ͳྲྀΕͰಉ࣌ଓΛΧϯτ͢Δ
IUUQBDDFTTMJNJUFSΛͬͯղܾͰ͖Δ͜ͱ
IUUQBDDFTTMJNJUFSΛͬͯղܾͰ͖Δ͜ͱ ੍ޚ୯Ґ NPE@NSVCZͰऔಘͰ͖ΔϦΫΤετύϥϝʔλΛ શͯར༻Ͱ͖Δɻ ઃఆө NSVCZΛͬͯ؆୯ʹɺHSBDFGVMSFTUBSUΛඞཁͱ ͠ͳ͍өํ๏Ͱ࣮͢Δ͜ͱ͕Ͱ͖Δɻ
IUUQBDDFTTMJNJUFSΛϕʔεʹ ՃػೳΛ࣮
੍ݶ༰ͷཧ
੍ݶ༰ͷཧ ੍ݶର͝ͱͷಉ࣌ଓΛཧ͍ͨ͠ʂ IUUQE IPHFDPN GVHBVTFSͷυϝΠϯ ϦΫΤετ IPHFDPNͷಉ࣌ଓ ·Ͱʹ͍ͨ͠ʜ GVHBVTFSͷಉ࣌ଓ
·Ͱʹ͍ͨ͠ʜ
੍ݶ༰ͷཧ IUUQBDDFTTMJNJUFSͷΞʔΩςΫνϟʹ੍ݶ༰Λཧ͢ΔػೳΛ࣮ IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ
ಉ࣌ଓ Χϯλʔ ʴ 1)1 $(*
੍ݶ༰ͷཧ IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ ಉ࣌ଓ
Χϯλʔ ,FZ7BMVF IPHFDPN GPPDPN ,74 1)1 $(* ੍ݶ༰Λอ͢ΔͨΊͷ,74Λ४උ ੍ݶ༰Λࢀর
੍ݶ༰ͷཧ IUUQE NPE@NSVCZ ,74 ϦΫΤετ ॲཧ ΠϯΫϦϝϯτ σΫϦϝϯτ ಉ࣌ଓ
Χϯλʔ ,FZ7BMVF IPHFDPN GPPDPN ,74 1)1 $(* ੍ݶ༰Λࢀর ,74 ,FZ7BMVF IPHFVTFS GPPVTFS ϗετ୯Ґ ΞΧϯτ୯Ґ ੍ݶ୯ҐΛ૿͍ͨ࣌͠,74Λ૿ͤྑ͍
ࣗಈ੍ޚγεςϜͱͷ࿈ܞ
ࣗಈ੍ޚγεςϜͱͷ࿈ܞ IUUQE NPE@NSVCZ ,FZ7BMVF IPHFDPN GPPDPN ,74 (PMBOH ࣗಈ੍ޚγεςϜ
IPHFDPN NBY@DMJFOUT GPPDPN NBY@DMJFOUT ᶃ੍ݶใͷ:".-ϑΝΠϧΛੜ ᶄ:".-ΛಡΈࠐΈ ᶅ,74ॻ͖ࠐΈ ෛՙͷݕ ϩάͷղੳ ݪҼͷಛఆ HSBDFGVMSFTUBSUͷΑ͏ʹॏ͍ॲཧෆཁ
,74ʹॻ͖ࠐΊྑ͍ͷͰʁ z:".-Λϩʔυ͢Δzͱ͍͏൚༻తͳΠϯλʔϑΣΠεʹ ͢Δ͜ͱͰɺผͷ੍ޚγεςϜ͕࡞ΒΕͯ؆୯ʹ࿈ܞͰ͖Δɻ ,74ͷഉଞ੍ޚNPE@NSVCZͰ࣮͍ͯ͠Δ ⇛֎෦͔Βॻ͖ࠐΈΛ͠Α͏ͱ͢ΔͱλΠϛϯάʹΑͬͯ ɹΤϥʔʹͳΔ
୯ൃͰେྔͷ$16ϦιʔεΛফඅ͢Δ ϓϩάϥϜͷରࡦ
DHSPVQ
DHSPVQͱ ϓϩηεΛάϧʔϓԽͯ͠$16ϝϞϦɺσΟεΫ*0ͷ ੍ޚΛߦ͏ɺ-JOVYΧʔωϧͷػೳ ৄ͘͢͠ͱ͕࣌ؒΓͳ͍ͷͰׂѪ͠·͢ʜ
ಛఆͷϦΫΤετͷΈΛରͱͯ͠ DHSPVQʹΑΔ$16ͷ੍ݶΛ͍ͨ͠ʂ
ಛఆͷϦΫΤετͷΈDHSPVQͰ੍ޚ͢Δ IUUQEXPSLFS IUUQEXPSLFS IUUQEXPSLFS ίϯςϯπॲཧ ίϯςϯπॲཧ ϦΫΤετ ϦΫΤετ $16ͷ੍ݶΛ͍ͨ͠
ϦΫΤετ ࣗʹDHSPVQͷ੍ݶΛ࣮ࢪ NSVCZ ίϯςϯπॲཧ ࣗΛݩͷDHSPVQʹ͢ NSVCZ $16੍ݶ
ಛఆͷϦΫΤετͷΈΛରͱͨ͠ DHSPVQʹΑΔ$16ͷ੍ݶΛ࣮ݱͨ͠ʂ
՝ʹ͍͓ͭͯ͞Β͍
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ өʹHSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧॏ͘ϨεϙϯεԆͷݪҼʹ ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ өॲཧ
ಉ࣌ଓ੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ࣮ࢪ͍ͨ͠ɻ ੍ݶखஈ
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ NPE@NSVCZ͔Βऔಘͨ͠ϦΫΤετύϥϝʔλΛ ݩʹ͋ΒΏΔ୯ҐͰ੍ޚΛߦ͏͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨɻ
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ NSVCZΛͬͯ,74ʹσʔλΛ࣋ͭ͜ͱͰ࠶ಡࠐΈॲཧ͕ ඞཁͳ͘ͳͬͨɻ өʹHSBDFGVMSFTUBSU͕ඞཁ ⇛HSBDFGVMSFTUBSUͷॲཧॏ͘ϨεϙϯεԆͷݪҼʹ
ɹͳΔͨΊۃྗ࣮ߦͨ͘͠ͳ͍ɻ өॲཧ
՝ ੍ޚ୯Ґ 7JSUVBM)PTUຖͷ੍ޚͷΈߦ͏ ⇛ෛՙύλʔϯʹΑͬͯɺΞΧϯτ୯ҐϑΝΠϧ୯Ґ ɹͳͲ੍ޚ୯ҐΛม͍͑ͨɻ DHSPVQʹΑΔ$16ͷίϯτϩʔϧΛߦ͏͜ͱͰղܾͨ͠ɻ ಉ࣌ଓ੍ݶͷΈߦ͏ ⇛୯ൃͰେྔͷϦιʔεΛফඅ͢ΔϓϩάϥϜʹରԠͰ͖ͳ͍ɻ ɹϦιʔεͷ੍ݶ࣮ࢪ͍ͨ͠ɻ
੍ݶखஈ
·ͱΊ
·ͱΊ ϗεςΟϯάαʔόͷ҆ఆӡ༻؆୯Ͱͳ͍ʂ ՝Λղܾ͢ΔͨΊʹNPE@NSVCZΛ༻͍ͨ $16Ϧιʔεͷ੍ޚख๏ͱͯ͠ɺϦΫΤετຖͷ DHSPVQʹΑΔ$16Ϧιʔε੍ޚΛ࣮ݱͨ͠ʂ ֦ுੑɾอकੑɾੜ࢈ੑͷߴ͍ΞΫηείϯτϩʔϧ ج൫Λ։ൃͨ͠ʂ
܅ϖύϘͰಇ͔ͳ͍͔ʁ ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ