현대 웹 기술은 점점 더 풍부한 온라인 경험을 제공하지만 유용성, 보안 및 개인 정보 보호 고려 사항으로 인해 예기치 않게 행동 할 수 있습니다. 이 기사는 그러한 몇 가지 사례를 강조합니다.
:visited
링크 및 getComputedStyle
제한 방문한 링크의 스타일 (<visited></visited>
)는 역사 누출을 방지하기 위해 오랫동안 제한되어 왔습니다. 방문한 링크에서 getComputedStyle
사용하려는 시도는 대신 방문되지 않은 스타일을 반환합니다. 부작용 또는 형제 선택기를 사용하는 해결 방법은 효과가 없습니다. 이 제한은 브라우저 기능 악용의 복잡성과 개발자가 이러한 뉘앙스를 알고 있어야 할 필요성을 강조합니다.
이전에 CDN은 여러 사이트에서 Google 글꼴과 같은 자산을 브라우저 캐싱을 가능하게했습니다. 그러나 이것은 상당한 개인 정보 보호 취약점을 만들어 타이밍 공격으로 사용자 브라우징 이력을 드러 냈습니다. 이를 해결하기 위해 브라우저는 더 이상 크로스 사이트 자산 캐싱을 허용하지 않습니다.
performance.now()
Specter와 같은 악용은 높은 정확도의 performance.now()
활용하여 민감한 CPU 데이터에 액세스했습니다. 이를 완화하기 위해 브라우저는 HTTP 헤더 및 브라우저 설정과 같은 요소에 따라 다른 노이즈 (20μs ~ 1ms)의 performance.now()
를 의도적으로 줄였습니다.
loading="lazy"
속성은 이미지와 iframes (일부 브라우저)의 게으른로드를 단순화하지만 JavaScript가 작동 해야한다는 것을 이해하는 것이 중요합니다. JavaScript를 비활성화하면 게으른 로딩이 방지 척도로서 방지합니다. "JavaScript가없는"게으른 적재에 대한 주장은 오해의 소지가 있습니다.
사용자는 Firefox 및 Tor와 같은 "저항 지문"설정과 같은 브라우저에서 볼 수 있듯이 보안 및 개인 정보를 향상시키기 위해 브라우저 기능을 크게 제한 할 수 있습니다. 이는 가변 정밀, API 액세스 및 미디어 쿼리 일치와 같은 기능에 영향을 미칩니다. 이를 완화하려면 진보적 인 향상과 우아한 저하가 필수적입니다.
시맨틱 HTML은 접근성을 향상 시키지만 화면 리더는 항상 예상대로 의미론을 해석하지는 않을 수 있습니다. 목록 마커를 제거하면 일부 브라우저에서 의미 론적 의미를 제거 할 수 있으며<strong></strong>
,,,<em></em>
, 그리고<mark></mark>
잠재적 노이즈로 인해 일관성이 없거나 생략 될 수 있습니다. 사용자와 테스트하고 시각적 스타일을 고려하는 것이 중요합니다.
브라우저 공급 업체는 개인 정보를 향상시키기 위해 웹 스토리지의 만료 정책을 구현하여 데이터의 지속성을 제한 할 수 있습니다. 예를 들어 Safari는 스크립트 쓰레기 스토리지를 7 일로 제한합니다.
많은 웹 기능은 직관적으로 예상되는 것처럼 정확하게 행동하지 않습니다. 개발자는 사용자의 요구를 비판적으로 평가하고 진보적 인 향상 및 우아한 악화를 우선 순위로 삼아 브라우저 및 사용자 선호도에서 일관된 기능을 보장해야하며, 완벽한 크로스 브라우저 패리티는 종종 달성 할 수 없음을 인정해야합니다. 이러한 한계를 이해하는 것은 강력하고 접근 가능한 웹 사이트를 구축하는 데 중요합니다.
위 내용은 예상대로 작동하지 않을 수있는 웹 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!