Download Undownloadable Pdf Downloading “Undownloadable” Web Pdfs with Fiddler

Total Page:16

File Type:pdf, Size:1020Kb

Download Undownloadable Pdf Downloading “Undownloadable” Web Pdfs with Fiddler download undownloadable pdf Downloading “undownloadable” web PDFs with Fiddler. I was once teaching a course in the area of backend software engineering. I didn’t own the course ma t erial, my duties included going over and presenting the slide deck that I had been provided by the course coordinator, answering any outstanding questions from the class, being on time, having lunch, and timely getting lost at 5:30 pm. At the end of the course, naturally, the students asked me to share the slide deck with them so they could go over it on their own. And that’s when the issue revealed itself — the course slides were provided to me via a secure document sharing platform, let’s call it PDFLord [I won’t mention the actual name for the sake of… reasons], which imposed downloading and printing restrictions on all the course PDFs. So, unfortunately, the students had to leave the class empty-handed. However, something didn’t seem right in my mind — if you can see the document on your screen, surely its source is hiding somewhere in the files downloaded/cached by your browser, and consequently the download restriction is artificial in a sense. In this article I will show you a method to overcome these restrictions that I discovered in the two days following the course. My tutorial will assume MacOS (High Sierra) development environment, Chrome browser, and PDFLord platform, but similar steps could be undertaken for other operating systems and other document sharing platforms. To begin with, let’s list the reasons why PDFLord was a bane of my existence: As mentioned before, the PDFs had downloading and printing restrictions (as indicated by the grayed out icons in the top right corner). The PDFs were copy-protected, meaning I could not select any text (as indicated by the “Protected File” pop-up on mouse click). The PDFs were unsearchable, meaning I had to memorize the page numbers of all sections in the course that I wanted to quickly navigate to. There was no fullscreen or present button. My first intuition was to examine the page source files. I will skip the parts where I was randomly clicking through all possible directories and folders while looking for the right files, and instead will go straight to the ones relevant to this tutorial. You can press Command+Shift+C to bring up the developer console in Chrome. Then open the Sources tab. As you can see there is a pdflord.com directory, with a plugins folder under assets . If you scroll down, you will find a folder called pdfjs , which contains two files — pdf.js and viewer.js. It turns out that PDFLord is using an open-source PDF rendering and parsing javascript library by Mozilla, which you can find here https://mozilla.github.io/pdf.js/ Let’s dig through the viewer.js file a bit more. After some inspection we find a method which sounds like it deals with page rendering: Let’s add a breakpoint on line 2141 inside this method right after the pageView variable and reload the page. Our goal is to examine what the object pointed at by this variable represents. After clicking through a bunch of object members… voila! We finally stumble on what we have been looking for — an integer array that very likely represents pixel data of the image of page 1 of the PDF. Surely, now we can just write a script to go over every page in the PDF, extract the image data arrays, convert them to jpegs, and end up with a sequence of images of the PDF file. To be honest, I wasn’t quite satisfied with this finding — I would still not be able to select any text or search through the images. I was looking for a better way. If we examine the viewer.js file a bit more, we find another interesting function: In particular, there is this very intriguing line which looks like it deals with restricting downloads: And then we also find the following sequence which deals with binding events to button click listeners. It’s amusing how the “print” and “download” events are very sloppily commented out, most likely to handle print and download logic in a different part of the code. At this point our action plan is clear: We will rebind one of the buttons to serve as a download button (simply uncommenting the download event listener didn’t work, I didn’t dig too much into why). Change the download permissions logic to not require allowdownload. Proceed to downloading the PDF. To make changes to javascript files returned by a web page we need a man-in-the-middle proxy server. For this purpose, we will be using Fiddler — a free web debugging proxy by Telerik https://www.telerik.com/fiddler. Fiddler was originally developed as a Windows application, and only recently got ported to Mac. On MacOS it runs using Mono — an open-source implementation of .NET Framework. You can follow this tutorial https://www.telerik.com/blogs/introducing-fiddler-for-os-x-beta-1 to install Mono and Fiddler. The only difference is that Fiddler 64bit version doesn’t work on OS X, so you would need to use this command to start Fiddler and avoid errors: Most websites nowadays use https, so we need to configure Fiddler to correctly capture and decrypt https traffic. Open Tools->Options- >HTTPS, and check the Decrypt HTTPS Traffic checkbox. Since Fiddler acts as a proxy, browser traffic gets redirected to it. All browsers know how to protect user data from man-in-the-middle attacks, so they don’t let the traffic be delivered to actors whose certificates are not trusted. To bypass this constraint we click on Actions-> Export Root Certificate To Desktop . Next, open Keychain Access — MacOS app that manages certificates — and drag-n-drop the generated certificate from your desktop to the Keychain window. The certificate will appear as DO_NOT_TRUST_FiddlerRoot. Double click on it, and in the new window select Always Trust. The final step is to actually redirect the traffic from Chrome to Fiddler. Open System Preferences->Network->Advanced->Proxies. Check Web Proxy and Secure Web Proxy , and for both set the host to 127.0.0.1 and the port to 8888. Click Ok , then Apply . You should now start seeing the traffic from your browser in the main Fiddler window. If you don’t see anything, try using an Incognito Window. Now the fun part: hacking the javascript files and serving them in place of the original files. Download (or copy paste) the viewer.js file, open it in your favorite editor, and replace line 10279 with: In short, we are binding the download event to the zoom-in button. Next, remove `PDFViewerApplication.appConfig.allowdownload ` from lines 1475 and 5067 (and anywhere else in the file for that matter): Our substitute viewer.js file is ready for deployment. Find and select the viewer.js resource in Fiddler (you might want to stop capturing traffic to prevent the window from refreshing by disabling File->Capture Traffic). Then in the panel on the right select AutoResponder->Add Rule. In the bottom drop-down menu choose Find File , select your substitute viewer.js file and click Save . Make sure both Enable rules and Unmatched requests passthrough are checked. Aaaaaand… drum roll… we are done! We are ready to download our PDF. Open your Chrome window with the PDF viewer. With your debugging console being open, right click the refresh button and click on Empty Cache and Hard Reload. Don’t forget to reenable Capture Traffic in Fiddler. Emptying the cache is necessary to not let Chrome pick up the original version of viewer.js and instead make it download it again from the web. The downloaded javascript file gets intercepted by Fiddler and replaced with our custom one. Now, whenever you click on the Zoom In button (“+”), your PDF will get downloaded. Great success! Final thoughts and lessons learned: When any data reaches your computer, there is absolutely no way to guarantee its complete integrity. Basing your business model on a premise that the data you share is fully secure and protected is a terrible idea. Hope y’all who got this far had as much fun with this tutorial as I did when fiddling with this challenge. Disclaimer: use at your own risk. Make sure you are not breaching any contracts with your document providers. There is a very obvious potential harm to the business models of the secure document sharing companies. How to Force Download Files from Google Drive. Force Download from Google Drive – Google Drive is only second to Dropbox and you can easily upload and share files using the awesome cloud storage service. In Google Drive, you can pretty much upload and share almost any and all sorts of files. Moreover, you can collaborate with your team members on editing and modify these uploaded files. That being said, Just like in Dropbox, there is no easy way to download files or docs from Google Drive as it can pretty easily handle most of the common file types and displays or renders them directly in your browser. Though this is convenient in most cases, this may be a pain if you want people to download your files instead of viewing them right in their browser. So if you ever want to download files from Google drive, here is a simple tip to force Google Drive to let users download the file instead of rendering them inside the browser.
Recommended publications
  • REAL-WORLD XAMARIN PROBLEMS and How to Solve Them Mobile Strategy
    REAL-WORLD XAMARIN PROBLEMS And How To Solve Them Mobile Strategy It’s 2017. Developers have been making mobile apps for almost a decade and have some choice in how they build those apps. Whatever the approach, a mobile strategy is imperative—it’s how you achieve consistency in building and supporting mobile solutions. The choice of technology for mobile depends on various factors, including the skills of the team involved, app specifics, customer demographics and maintainability of code base. Here are the high level technology choices that could make up a mobile strategy: Progress.com 2 Mobile Web • Web apps that work nicely on mobile devices • Frameworks like Twitter Bootstrap & Kendo UI Core help. Native Apps • Native iOS/Android/Windows apps for each platform • Written in native languages and built with native toolkits • Closest to the metal and best possible UX • Expensive to write and maintain JS Native Apps • Use web technologies to build truly native mobile apps • Cross platform reach with single codebase • Big contenders being NativeScript and React Native • Potential to share code between web and mobile Cross-Compiled • Use beloved language and tools to write mobile app • Single codebase with cross-platform reach • App gets compiled down to native code on each platform • Primary contender is Xamarin Progress.com 3 Why Xamarin? If your development experience includes .NET, you probably already know C# and XAML—the primary programming languages for mobile development with Xamarin. Xamarin truly democratizes cross-platform mobile
    [Show full text]
  • Advanced HTML5 and CSS3 Specialist: CIW Web and Mobile Design Series Student Guide CCL02-CDHTCS-CK-1405 • Version 1.0 • Rd042214
    Advanced HTML5 and CSS3 Specialist: CIW Web and Mobile Design Series Student Guide CCL02-CDHTCS-CK-1405 • version 1.0 • rd042214 Advanced HTML5 and CSS3 Specialist Student Guide Chief Executive Officer Barry Fingerhut Vice President, Operations & Development Todd Hopkins Senior Content Developer Kenneth A. Kozakis Managing Editor Susan M. Lane Editor Sarah Skodak Project Manager/Publisher Tina Strong Customer Service Certification Partners, LLC 1230 W. Washington St., Ste. 201 Tempe, AZ 85281 (602) 275-7700 Copyright © 2014, All rights reserved. Advanced HTML5 and CSS3 Specialist Developer Patrick T. Lane Contributors James Stanger, Ph.D., Sadie Hebert, Jason Hebert and Susan M. Lane Editor Susan M. Lane Project Manager/Publisher Tina Strong Trademarks Certification Partners is a trademark of Certification Partners, LLC. All product names and services identified throughout this book are trademarks or registered trademarks of their respective companies. They are used throughout this book in editorial fashion only. No such use, or the use of any trade name, is intended to convey endorsement or other affiliation with the book. Copyrights of any screen captures in this book are the property of the software's manufacturer. Disclaimer Certification Partners, LLC, makes a genuine attempt to ensure the accuracy and quality of the content described herein; however, Certification Partners makes no warranty, express or implied, with respect to the quality, reliability, accuracy, or freedom from error of this document or the products it describes. Certification Partners makes no representation or warranty with respect to the contents hereof and specifically disclaims any implied warranties of fitness for any particular purpose. Certification Partners disclaims all liability for any direct, indirect, incidental or consequential, special or exemplary damages resulting from the use of the information in this document or from the use of any products described in this document.
    [Show full text]
  • Package 'Shinyfiles'
    Package ‘shinyFiles’ November 9, 2020 Type Package Title A Server-Side File System Viewer for Shiny Version 0.9.0 Maintainer Thomas Lin Pedersen <[email protected]> Description Provides functionality for client-side navigation of the server side file system in shiny apps. In case the app is running locally this gives the user direct access to the file system without the need to ``download'' files to a temporary location. Both file and folder selection as well as file saving is available. License GPL (>= 2) Encoding UTF-8 Imports htmltools, jsonlite, tools, shiny (>= 1.1.0), fs (>= 1.2.6), tibble (>= 1.4.2) Collate 'aaa.R' 'filechoose.R' 'dirchoose.R' 'filesave.R' 'shinyFiles-package.R' RoxygenNote 7.1.1 URL https://github.com/thomasp85/shinyFiles BugReports https://github.com/thomasp85/shinyFiles/issues NeedsCompilation no Author Thomas Lin Pedersen [cre, aut] (<https://orcid.org/0000-0002-5147-4711>), Vincent Nijs [aut], Thomas Schaffner [aut], Eric Nantz [aut] Repository CRAN Date/Publication 2020-11-09 16:40:02 UTC 1 2 shinyFiles-package R topics documented: shinyFiles-package . .2 dirCreator . .3 dirGetter . .3 fileGetter . .4 formatFiletype . .5 getVolumes . .5 shinyFiles-buttons . .6 shinyFiles-observers . 10 shinyFiles-parsers . 13 shinyFilesExample . 14 traverseDirs . 14 updateChildren . 15 Index 16 shinyFiles-package A Server-Side File System Viewer for Shiny Description Provides functionality for client-side navigation of the server side file system in shiny apps. In case the app is running locally this gives the user direct access to the file system without the need to "download" files to a temporary location. Both file and folder selection as well as file saving is available.
    [Show full text]
  • Eric Lawrence Austin TX 78750 Twitter: @Ericlaw
    Eric Lawrence http://www.ericlawrence.com Austin TX 78750 Twitter: @ericlaw WORK HISTORY Jan 2016-Present Software Engineer for Google Chrome; Google Helping to bring HTTPS to all sites on the Web through evangelism, feature development, and bug fixing Oct 2012-Dec 2015 Product Manager / Principal .NET Developer for Fiddler Web Debugger; Telerik Ongoing design, development, documentation, and evangelism of the Fiddler Web Debugger and FiddlerCore class library Contributing developer for the Test Studio Load Test product Nov 2010-Oct 2012 Senior Program Manager Lead for Internet Explorer Fundamentals; Microsoft Corporation Led a team of four Program Managers to deliver on IE’s Security, Privacy, Reliability, Telemetry, Extensibility, and Process Model features Worked cross-team with Windows 8 Platform and Office teams to build major new application platforms for Windows 8 and Office 15 Designed and developed improvements for WinINET caching logic to improve performance and standards-compliance Wrote functional specifications, blog posts, vision documents and presentations Oct 2007-Nov 2010 Security Program Manager for Internet Explorer; Microsoft Corporation Developed and drove the security strategy and feature set for Internet Explorer Represented IE Security for Microsoft at conferences, in working groups, and on the IEBlog Mar 2007-Oct 2007 Program Manager for Internet Explorer Developer Experience; Microsoft Corporation Junior architect for Developer Experience team to help ensure PM specs supported IE Developer platform vision Worked with Internet Explorer’s Developer Experience team to design and develop a secure cross-domain solution for AJAX Nov 2004- Mar 2007 Program Manager for Internet Explorer Networking & Trust; Microsoft Corporation PM owner for IE Networking team; led a team of 6 developers and 12 testers to successfully deliver Networking and Zones components for Internet Explorer 7 Designed and spec’d IE7 support for International Domain Names, CURI, Enhanced Validation SSL certificates, HTTPS user-experience.
    [Show full text]
  • Packet Analysis for Network Forensics: a Comprehensive Survey
    Edith Cowan University Research Online ECU Publications Post 2013 1-1-2020 Packet analysis for network forensics: A comprehensive survey Leslie F. Sikos Edith Cowan University Follow this and additional works at: https://ro.ecu.edu.au/ecuworkspost2013 Part of the Physical Sciences and Mathematics Commons 10.1016/j.fsidi.2019.200892 Sikos, L. F. (2020). Packet analysis for network forensics: a comprehensive survey. Forensic Science International: Digital Investigation, 32, Article 200892. https://doi.org/10.1016/j.fsidi.2019.200892 This Journal Article is posted at Research Online. https://ro.ecu.edu.au/ecuworkspost2013/7605 Forensic Science International: Digital Investigation 32 (2020) 200892 Contents lists available at ScienceDirect Forensic Science International: Digital Investigation journal homepage: www.elsevier.com/locate/fsidi Packet analysis for network forensics: A comprehensive survey Leslie F. Sikos Edith Cowan University, Australia article info abstract Article history: Packet analysis is a primary traceback technique in network forensics, which, providing that the packet Received 16 May 2019 details captured are sufficiently detailed, can play back even the entire network traffic for a particular Received in revised form point in time. This can be used to find traces of nefarious online behavior, data breaches, unauthorized 27 August 2019 website access, malware infection, and intrusion attempts, and to reconstruct image files, documents, Accepted 1 October 2019 email attachments, etc. sent over the network. This paper is a comprehensive survey of the utilization of Available online xxx packet analysis, including deep packet inspection, in network forensics, and provides a review of AI- powered packet analysis methods with advanced network traffic classification and pattern identifica- Keywords: Packet analysis tion capabilities.
    [Show full text]
  • Securetransport 5.3.6 Web Client User Guide 3 View File and Folder Details 29 Rename Files and Folders 29 Delete Files and Folders 30
    SecureTransport Version 5.3.6 2 June 2020 Web Client User Guide Copyright © 2020 Axway All rights reserved. This documentation describes the following Axway software: Axway SecureTransport 5.3.6 No part of this publication may be reproduced, transmitted, stored in a retrieval system, or translated into any human or computer language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical, manual, or otherwise, without the prior written permission of the copyright owner, Axway. This document, provided for informational purposes only, may be subject to significant modification. The descriptions and information in this document may not necessarily accurately represent or reflect the current or planned functions of this product. Axway may change this publication, the product described herein, or both. These changes will be incorporated in new versions of this document. Axway does not warrant that this document is error free. Axway recognizes the rights of the holders of all trademarks used in its publications. The documentation may provide hyperlinks to third-party web sites or access to third-party content. Links and access to these sites are provided for your convenience only. Axway does not control, endorse or guarantee content found in such sites. Axway is not responsible for any content, associated links, resources or services associated with a third-party site. Axway shall not be liable for any loss or damage of any sort associated with your use of third-party content. Contents Preface 5 Who should read this
    [Show full text]
  • Block Request Url Fiddler
    Block Request Url Fiddler Porky and theological Shumeet fistfights, but Arlo shiftily synopsised her bellyache. Untrod Adolphe usually fraternizing some Mountbatten or educing thrice. Fissionable Florian densify some plays and romanticizing his patisserie so agonistically! There are all restrictions on clients, we all of blocking ads for that can use it. Are you looking for free online streaming websites? Linux and fiddler to. Changes location for manual data collection. Make the most of the Web with impeccably optimized, anonymous surfing, milestone and snapshot versions with these changes are now available on public spring repositories. Select web requests, fiddler application using our free extensions start blocking any blocked or blocks. We brought the following. Start reading the file from the beginning. How can I solve it? This is only recommended in a network down situation, whitelist any sites, and have everything work. Write a netflix or blocked? Followed mentioned before requests on twitter. Export to txt, a popup asking to allow the RSA keys will show up. How can I do this? Free Web Proxy and Web Proxy. It should be noted that I jumped back several. HTTP traffic generator and intrusion detection based on security events log. Hey Prashant, then the web content returns to you through the same proxy server. Express code block requests sent back to fiddler is blocking, url query parameters. The syntax and expertise it works are very interesting. Based on tom and roland from wingmanteam work. Another list of blocking. What do you need to do in order to have fetch cross platform? Drupal is blocked requests to block bad queries.
    [Show full text]
  • Linkman PDF Manual
    Outertech Linkman Linkman is a bookmark management solution which supports 10 different browsers and integrates with Firefox, Internet Explorer and Maxthon. Linkman calls upon many powerful features that replace the browser's native URL management and allow to browse faster and more efficiently. To give you a better impression a Linkman tutorial video can be watched at http://linkmanvideo.outertech.com You can choose between two editions. Linkman Lite (Freeware) http://linkmanlite.outertech.com Linkman Lite is free for private non-commercial use as well as for use in charity organizations and educational use. Private use is only when used by individuals at home on their private PC. Educational use is by students for education in school or university. Linkman Pro ($25 | EUR19 for single computer license) http://linkmanpro.outertech.com This edition is intended for the professional user. Linkman Pro contains all features of Linkman Lite. In addition these abilities are included: * Synchronize links between two (or more) computers * Ability to check URLs for dead links, intelligent (only major) content changes, and page movements * Add all links on a single webpage * Improved keyword features (e.g. Keyword List) * Replace feature * Improved Database backup * Retrieve URL meta tags * Editable Export Templates (XML, TSV...) with UTF8 support * Optional installation on USB sticks for mobile usage Linkman 3 Table of Content Foreword 0 Part I Introduction 7 1 .O...v..e...r.v..i.e...w.............................................................................................................................. 7 2 .W...h...a..t.'.s.. .n..e..w............................................................................................................................ 9 3 ...O...t.h..e...r. .s..o..f..t.w...a..r.e................................................................................................................... 21 Part II Frequently Asked Questions 23 Part III Tutorial 27 1 ...F..i.r..s..t.
    [Show full text]
  • Eric Lawrence Ericlawrence.Com Austin TX 78729
    Eric Lawrence ericlawrence.com Austin TX 78729 I’m a passionate technologist with a background in security and web performance. I build tools and utilities to help developers drive the web forward. WORK HISTORY Jan ‘18-Present Principal Program Manager Lead for the Web Platform; Microsoft • Lead small teams of Program Managers to advance the web platform • Architect and implement features to improve networking, security, privacy, and compatibility Jan ‘16-Jun ‘18 Senior Software Engineer for Google Chrome; Google • Chromium Committer; Security Sheriff; Chrome Security Enamel team member • Helping to bring HTTPS to all sites on the Web through evangelism, feature development, and bug fixing Oct ‘12-Dec ‘15 Product Manager / Principal .NET Developer for Fiddler Web Debugger; Telerik • Ongoing design, development, documentation, and evangelism of the Fiddler Web Debugger and FiddlerCore class library • Contributing developer for the Test Studio Load Test product Nov ‘10-Oct ‘12 Senior Program Manager Lead for Internet Explorer Fundamentals; Microsoft • Led a team of four Program Managers to deliver on IE’s Security, Privacy, Reliability, Telemetry, Extensibility, and Process Model features • Worked cross-team with Windows 8 Platform and Office teams to build major new application platforms for Windows 8 and Office 15 • Designed and developed improvements for WinINET caching logic to improve performance and standards-compliance • Wrote functional specifications, blog posts, vision documents and presentations Oct ‘07-Nov ‘10 Security Program
    [Show full text]
  • Webworks Reverb
    ePublisher Platform Documentation Published date: 11/15/2020 Table of Contents Selecting Input and Output Formats............................................................................................... 13 How Content is Generated as Output.................................................................................................14 Input Formats.......................................................................................................................................15 Adobe FrameMaker.........................................................................................................................16 Microsoft Word................................................................................................................................ 17 DITA XML Files...............................................................................................................................18 WebWorks Markdown..................................................................................................................... 19 Output Formats.................................................................................................................................... 20 Dynamic HTML................................................................................................................................21 Dynamic HTML Output Viewer...................................................................................................23 Delivering Dynamic HTML..........................................................................................................24
    [Show full text]
  • Deriving HTML from PDF a Usage Specification for Tagged ISO 32000-2 Files Version 1.0 (June 2019)
    Deriving HTML from PDF A usage specification for tagged ISO 32000-2 files Version 1.0 (June 2019) Copyright © 2019 PDF Association This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. PDF Association Neue Kantstrasse 14 14057 Berlin, Germany Tel: +49 (0)30 39 40 50-0 Fax: +49 (0)30 39 40 50-99 E-mail: [email protected] Web: www.pdfa.org Published in Germany and the United States of America Foreword The PDF Association is the meeting place of the PDF industry. The work of preparing industry standards and best practices is normally carried out through Technical Working Groups (TWGs). The results of such work may, if desired by the members of the respective TWG, the Board of Directors, and the members as a whole, may be submitted to ISO for publication as an International Standard. Each PDF Association member interested in a subject for which a TWG has been established has the right to be represented on that committee. International organizations, governmental and non-governmental, in liaison with the PDF Association, also take part in the work. The PDF Association collaborates closely with the 3D PDF Consortium and ISO on all matters of standardization. The procedures used to develop this document and those intended for its maintenance are described in the PDF Association's publication process. Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights.
    [Show full text]
  • Web GUI Development CSE5544 We Will Focus on the Client-Side
    Web GUI Development CSE5544 We will focus on the client-side. • Client-side: HTML, CSS (Bootstrap, etc.), JavaScript (jQuery, D3, etc.), and so on. Background • Server-side: PHP, ASP.Net, Python, and nearly any language (C++, C#, Java, etc.) • HTML – Structure/Content • CSS – Presentation/Style • JavaScript – Behavior Outline • Recall HTML+CSS Basic (warm-up). • HTML element, attribute, style, selector (type, id, class). • HTML+CSS for Web GUI. • HTML layout and commonly used elements. • Bootstrap (HTML+CSS framework with design template). • JavaScript to make Web GUI (HTML pages) dynamic and interactive. • JavaScript basic: function, array, object, etc. • HTML JavaScript DOM: manipulate HTML contents. • jQuery: JS library to simplify HTML contents manipulation and so. • D3: JS library to visualize data using HTML+SVG+CSS. HTML Element • HTML (Hyper Text Markup Language) is the standard markup language for creating Web pages. • HTML describes the structure of Web pages. • HTML elements are the building blocks of HTML pages, and are represented by tags (to render page contents by your browsers). • W3C recommends lowercase in HTML, and demands lowercase for stricter document types like XHTML. HTML Attribute • Attributes provide additional information about HTML elements, e.g., define the characteristics of an HTML element. • Attributes are always specified in the start (opening) tag. • Attributes usually come in name/value pairs, e.g., name="value”. • Both double quotes (more common) and single quotes around attribute values can be used. • In case attribute value itself contains double quotes, it is necessary to use single quotes. HTML Attribute cont. • The four core attributes that can be used on the majority of HTML elements (although not all): • id: uniquely identify any element within an HTML page.
    [Show full text]