Server-Side Technologies MPRI 2.26.2: Web Data Management Antoine Amarilli Friday, December 7th 1/36 Servers Handle the query (simple case) or route it to another program (complex case) Apache Free and open-source, released in 1995 IIS Provided with Windows, proprietary nginx High performance, free and open-source (but commercial Plus version), released in 2002 GWS Google Web Server, internal lighttpd Lightweight alternative to Apache Caddy Supports HTTP/2 and HTTPS, released in 2015 Others Rare, experimental, embedded systems... 2/36 Market share 3/36 Simple static websites • Each resource is stored in a le on disk: ! /var/www/page.html, /var/www/style.css... • Pages are organized as a hierarchy of folders • The requested paths correspond to the folders ! GET /a/b.html corresponds to /var/www/a/b.html • If a directory is queried: • Serve index.html if it exists • Otherwise, serve a list of the les in the folder 4/36 Apache extensions • Parameter Apache (and other servers) with .htaccess les: • deny from all to block clients from accessing a directory • HTTP Basic authentication • URL rewriting: • RewriteRule (.*\.png) /images/$1 • Server Side Includes: • <!–#include virtual="/footer.html" –> 5/36 Logging and statistics Traditional Web servers log queries (NCSA common log format): • IP address of the client • Date and time • First line of the HTTP query (includes the path) • HTTP status code • Size of the response • Often: User-Agent and Referer 208.115.113.88 - - [22/Jan/2012:06:27:00 +0100] "GET /robots.txt HTTP/1.1" 404 266 "-" "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)" 6/36 What do logs divulge • Most visited web pages • Number of unique visitors • Time spent on website and paths (but complicated by tabs) • Browser market share, most common bots • Geographical origin of visitors (IP) • Links to the website, search engine terms 7/36 Modern logging • The historical way is to process these logs directly • Also: PHP scripts that will do their own logging (e.g., Matomo) • Also: Javascript analytics, e.g., Google Analytics • Also: third-party info, e.g., Google Search Console 8/36 Table of Contents Web servers Server-side languages Frameworks Practical aspects 9/36 CGI • Historical way: the Web server calls an external program • The program is given the parameters of the query • The query result is what the program returns • Drawback: it’s heavy to create one process per query: ! FastCGI and other such mechanisms, or ! Integrate the programming language to the server, e.g., PHP 10/36 PHP • Released in 1995 and used by hundreds of millions of websites1 • From dirty hacks (Personal Home Page) to a full language • Added to HTML pages and run by the server <ul> <?php $from= intval($_POST[ 'from']); $to= intval($_POST[ 'to']); for($i= $from; $i< $to; $i++){ echo "<li>$i</li>"; } ?> </ul> 1https://secure.php.net/usage.php 11/36 Drawbacks of PHP • Not initially designed as a complete programming language • Historically encouraged bad security practices ! e.g., making $_POST[’from’] available as $from • Interpreted language so bad performance ! Now, virtual machines with JIT compilation (HHVM by Facebook) 12/36 Other server-side languages ASP.NET Microsoft ColdFusion Adobe, commercial and proprietary JSP Integrating Java and a Web server (e.g., Apache Tomcat) node.js Chrome’s JavaScript engine (V8) plus a Web server Python Web frameworks: Django, CherryPy, Flask Ruby Web frameworks: Ruby on Rails, Sinatra 13/36 Databases • SQL databases: MySQL, PostgreSQL, or proprietary solutions • NoSQL databases (e.g., MongoDB) for documents, graphs, key-value pairs, triples, etc. • Distributed databases ! See Pierre’s class 14/36 Table of Contents Web servers Server-side languages Frameworks Practical aspects 15/36 Frameworks • Set of functions and tools, organized around a language, for Web applications • AJAX integration, Javascript code generation... • MVC: Model The structure of application data and how to manipulate it View The presentation of data seen on the client Controller The control of the interaction between the model and the view 16/36 Templates again • Templates for HTML pages with instantiable elds • Example (with Jinja2), note that it is procedural (for): <h1>Results for "{{ query }}"</h1> <ul> {% for object in results %} <li> <a href="details/{{ object.id }}"> {{ object.name }} </a> </li> {% endfor %} </ul> 17/36 URL routing • Routing depending on the path and method • Example (with Flask): @app.route('/') def index(): pass # Prepare the index page @app.route('/message/<int:message_id>') def message(message_id): pass # Prepare the display of message <message_id> @app.route('/upload', methods=['POST']) def upload(): pass # Manage an upload 18/36 CMS • Content Management System • Allows users to design websites without programming: • Edit pages with a rich text editor or shorthand (Markdown, etc.) • File hosting • User management • Predened themes • Dierent kinds: Wikis MediaWiki, MoinMoin, PmWiki... Forums phpBB, PunBB, Phorum, vBulletin... Blogs WordPress, Movable Type, Drupal, Blogger... QA (like StackOverow): Shapado, OSQA, AskBot Shops Magento, PrestaShop... • Other hosted services: Weebly, Wix, etc. 19/36 Market share 25 20 15 10 5 0 WordPress Joomla Drupal Blogger Magento TYPO3 Websites with each CMS (November 2018); all in PHP or hosted. Source: https://w3techs.com/technologies/overview/content_management/all 20/36 node.js • The MEAN platform: • MongoDB (see Pierre’s class) • Express.js (minimal framework for Node.js) • Angular • Node.js • Advantage: Isomorphic JS: same code on the client and server: • Idea: rst run the code on the server to compute the view • Then: send the complete Javascript code in background and run it on the client • Other advantages for code reuse (e.g., validating input) • Package manager for libraries: npm (or yarn); also bower 21/36 Meteor • Integrated solution on top of node.js • Database everywhere: Have a partial cache of the database on the client which is transparently synchronized with the server ! More ecient and simpler to code ! Access rules to limit what the client can edit • Latency compensation: optimistically perform changes on the client and then sync them with the server in the background • Session and user management • Various routing libraries: FlowRouter, IronRouter, ... 22/36 Javascript tooling • Javascript minication and obfuscation ! Make it reversible for debugging with source maps • Linting • Documentation: JSDoc, like Doxygen • Packing together code and dependencies: webpack • Elimination of dead code or tree shaking • Transpiling to other Javascript variants, e.g., Babel, Google Closure Tools • Task running system: grunt, gulp 23/36 Identifying server technologies Client technologies are easy to identify (up to JS minication and obfuscation), but server technologies are harder to spot • whois: database which (often) has information about the owner of a domain name • Geolocation of servers based on their IPs • traceroute to know the network path to a host • Scanning tools (nmap) to nd machines and ngerprint their OS • Server header (may be missing or wrong) • Format for cookies, session identiers... • Paths and extensions: .php, .asp, ... • Comments in HTML code 24/36 Table of Contents Web servers Server-side languages Frameworks Practical aspects 25/36 How to host your website • You can use a hosted solution, e.g., Wordpress, Weebly (simplest) • ISPs often propose hosting with limited space, sometimes PHP/MySQL • You can rent a VPS or dedicated server to run your own (a few EUR/month) • You can host a website in your home behind an optic ber connection with a xed IP address • You can host a web application on the cloud (serverless computing) 26/36 Hosting infrastructure • Server: machine which is always on and answers Web queries • Datacenter: building containing servers with a good Internet connection, reliable electricity, air conditioning, physical security • VPS: Virtual Private Server: a virtual machine that pretends to be a true machine • Cloud: easy way to rent machines at a large scale ! Can adapt the number of rented machines depending on load • CDN: Content delivery network, acts as a proxy 27/36 How to self-host your website • Rent a domain name (around 15 EUR/year) • Have a server (your own machine, or a VPS or dedicated server) • Congure SSH to connect to the machine and set it up • Install a Web server, your framework, your CMS, etc. 28/36 Concrete example: Wikimedia • wikipedia.org, 5th most visited Website in 2018.2 • Not-for-prot charity, around 300 employees in 2018 • 81.9 million USD in revenue in 2016 (mostly donations) • Technical costs in 2016: a few million USD • About one thousand servers in total (2013) 2http://www.alexa.com/topsites 29/36 General statistics • 137 115 active users on en.wikipedia.org3 • Around 1000 edits per minute in total4 • 16 billion page views per month on all projects5 • Around 7 000 per second on average with peaks at 50 0006 • 825 million unique devices per month on the English Wikipedia7 3 https://en.wikipedia.org/wiki/Wikipedia:Wikipedians#Number_of_editors 4 https://grafana.wikimedia.org/dashboard/ 5 https://stats.wikimedia.org/v2/ 6 https: //arstechnica.com/information-technology/2008/10/wikipedia-adopts-ubuntu-for-its-server-infrastructure/ 7 https://stats.wikimedia.org/v2/ 30/36 General infrastructure • Datacenters: ! Main site: Ashburn, Virginia (Equinix) ! For Europe (network and cache), Amsterdam (EvoSwitch, Kennisnet) ! Cache: San Francisco (United Layer), Singapore (Equinix) ! Other sites:
MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Webové diskusní fórum BAKALÁRSKÁˇ PRÁCE Martin Bana´s Brno, Jaro 2009 Prohlášení Prohlašuji, že tato bakaláˇrskápráce je mým p ˚uvodnímautorským dílem, které jsem vy- pracoval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování používal nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušný zdroj. V Brnˇe,dne . Podpis: . Vedoucí práce: prof. RNDr. JiˇríHˇrebíˇcek,CSc. ii Podˇekování Dˇekujivedoucímu prof. RNDr. JiˇrímuHˇrebíˇckovi,CSc. za správné vedení v pr ˚ubˇehucelé práce a trpˇelivostpˇrikonzutacích. Dále dˇekujicelému kolektivu podílejícímu se na reali- zaci projektu FEED za podnˇetnépˇripomínkya postˇrehy. iii Shrnutí Bakaláˇrskápráce se zabývá analýzou souˇcasnýchdiskusních fór typu open-source a vý- bˇerem nejvhodnˇejšíhodiskusního fóra pro projekt eParticipation FEED. Další ˇcástpráce je zamˇeˇrenána analýzu vybraného fóra, tvorbu ˇceskéhomanuálu, ˇceskélokalizace pro portál a rozšíˇrenípro anotaci pˇríspˇevk˚u. Poslední kapitola je vˇenovánanasazení systému do provozu a testování rozšíˇrení pro anotaci pˇríspˇevk˚u. iv Klíˇcováslova projekt FEED, eParticipation, diskusní fórum, portál, PHP, MySQL, HTML v Obsah 1 Úvod ...........................................3 2 Projekt eParticipation FEED .............................4 2.1 eGovernment ...................................4 2.2 Úˇcastníciprojektu FEED .............................4 2.3 Zamˇeˇreníprojektu FEED .............................5 2.4 Cíl
Google Chrome Post Request Extension Hermaphroditic and augmenting Templeton quaking almost lustfully, though Gustaf inosculated his aspirations contracts. Otto singsong her regur complexly, she call it impassably. Old-rose and sedged Bennet timbers some tenderfoots so delusively! Extension will install automatically after dropping on extensions page. This can commonly be found by going to the start menu and scrolling down the all programs list until you find the appropriate program or app. Sometimes, it is the best first step if you simply want to move away from Google Ecosystem. Chrome will generate a request for a license to decrypt that media. Is Computer Science necessary or useful for programmers? Insomnia is a powerful HTTP tool belt in one intuitive app. Barth, the proof, Google also announced its plan to crack down on websites that make people involuntarily subscribe to mobile subscription plans. Thank you for your help. How much do you use JMeter and how do you use it for simulating users playing the game or just a service that maybe consumed by a particular game? Again, you set one extremely secure password. Not only can CRXcavator help organizations manage their allowlist, but the entire Google Ecosystem. Once you select the HTTP request, for keeping us informed, the server is assumed to have responded with these response headers instead. Browsers are beginning to upgrade and block insecure requests. You can setup all the headers and all the cookies and everything the way you want it and then check the response when it comes back. Network view or waterfall chart. Jadali found usernames, user interface, and so on.
Vulnerability Summary for the Week of September 4, 2017
Vulnerability Summary for the Week of September 4, 2017 The vulnerabilities are based on the CVE vulnerability naming standard and are organized according to severity, determined by the Common Vulnerability Scoring System (CVSS) standard. The division of high, medium, and low severities correspond to the following scores: High - Vulnerabilities will be labeled High severity if they have a CVSS base score of 7.0 - 10.0 Medium - Vulnerabilities will be labeled Medium severity if they have a CVSS base score of 4.0 - 6.9 Low - Vulnerabilities will be labeled Low severity if they have a CVSS base score of 0.0 - 3.9 High Vulnerabilities CVS S Primary Publishe Scor Source & Vendor -- Product Description d e Patch Info In libavformat/mxfdec.c in FFmpeg 3.3.3, a DoS in mxf_read_index_entry_array() due to lack of an EOF (End of File) check might cause huge CPU consumption. When a crafted MXF file, which claims a large "nb_index_entries" field in the header but does not contain sufficient backing data, is provided, the loop would consume huge CPU resources, since there is no EOF check inside the loop. Moreover, this big loop can be CVE-2017- invoked multiple times if there is more than 14170 one applicable data segment in the crafted 2017-09- CONFIRM(lin ffmpeg -- ffmpeg MXF file. 07 7.1 k is external) In libavformat/nsvdec.c in FFmpeg 3.3.3, a DoS in nsv_parse_NSVf_header() due to lack of an EOF (End of File) check might cause huge CPU consumption. When a crafted NSV file, which claims a large "table_entries_used" field in the header but does not contain sufficient backing data, is CVE-2017- provided, the loop over 'table_entries_used' 14171 would consume huge CPU resources, since 2017-09- CONFIRM(lin ffmpeg -- ffmpeg there is no EOF check inside the loop.
User Manual Instructional Icons Before You Start, Familiarise Yourself with the Icons Using This You Will See in This Manual
user manual Instructional icons Before you start, familiarise yourself with the icons using this you will see in this manual: Warning—situations that could cause manual injury to yourself or others This user manual has been specially Caution—situations that could cause designed to guide you through the functions and damage to your device or other equipment features of your mobile device. Note—notes, usage tips, or additional information X Refer to—pages with related information; for example: X p. 12 (represents “see page 12”) ii • Google, Android, Android Market, Google Talk, → Followed by—the order of options or Google Mail, and Google Maps are trademarks of menus you must select to perform a step; Google, Inc. → for example: Select Messaging New • YouTube is a trademark of YouTube, LLC. message (represents Messaging, YouTube® logo is a registered trademark of followed by New message) YouTube, LLC. manual this using • Bluetooth® is a registered trademark of the [ ] Square brackets—device keys; for Bluetooth SIG, Inc. worldwide. example: [ ] (represents the Power key) Bluetooth QD ID: B015432 • Wi-Fi®, the Wi-Fi CERTIFIED logo, and the Wi-Fi Copyright information logo are registered trademarks of the Wi-Fi Rights to all technologies and products that Alliance. comprise this device are the property of their respective owners: • This product has a Android platform based on Linux, which can be expanded by a variety of JavaScript-based software. iii safety and usage information .................. 1 Safety warnings ..........................................1 Safety precautions ......................................3 contents Important usage information .......................6 introducing your device ......................... 11 Unpack .....................................................11 Device layout ............................................12 Keys .........................................................13 Icons .........................................................14 getting started with your device ...........
https://www.halvorsen.blog ASP.NET Core Web Server IIS Deployment Hans-Petter Halvorsen Introduction • Introduction to IIS deployment • If you have never used ASP.NET Core, I suggest the following Videos: – ASP.NET Core - Hello World https://youtu.be/lcQsWYgQXK4 – ASP.NET Core – Introduction https://youtu.be/zkOtiBcwo8s 2 Scenario Development Environment Test/Production Environment Local PC with Windows 10 Windows 10/Windows Server ASP.NET Core IIS Web Application SQL Server Visual Studio ASP.NET Core SQL Server Express Web Application Visual Studio Web Server • A web server is server software that can satisfy client requests on the World Wide Web. • A web server can contain one or more websites. • A web server processes incoming network requests over HTTP and several other related protocols. • The primary function of a web server is to store, process and deliver web pages to clients. • The communication between client and server takes place using the Hypertext Transfer Protocol (HTTP). • Pages delivered are most frequently HTML documents, which may include images, style sheets and scripts in addition to the text content. https://en.wikipedia.org/wiki/Web_server 4 Web Pages and Web Applications Web Server Client Web Server software, e.g., Internet Information Services (IIS) Request Web Browser, (URL) e.g., Edge, Internet Chrome, Safari, or Local etc. Response Network (LAN) Data- (HTML) base Operating System, e.g., Windows Server PC with Windows 10, macOS or Linux Smartphone with Android or iOS, etc. Web Server Software PHP (pronounced "engine x") Internet Information Services - Has become very popular lately ASP.NET Cross-platform: UNIX, Linux, OS X, Windows, ..
Lecture 28 Scripting Language Used to Create Dynamic Web Pages (Like Perl Open Source)
PHP A server-side, cross-platform, HTML-embedded Lecture 28 scripting language used to create dynamic Web pages (like Perl open source). We can write PHP code directly into HTML and don’t PHP need to worry about CGI (like Java Server Pages). April 6, 2005 Looks like Perl and knowledge of one can help you understand the other. Web server needs to be configured to parse files with certain extensions (e.g. php or phtml) appropriately. PHP Serve-side Scripting Server-side scripting SSI: Server-side includes: Most CGI tools: very old scripting language write page headers, define layout, etc. mostly provides #include few really dynamic parts, most static PHP: have to write many static print statements complete language Let’s design pages by writing static HTML documents free with pieces of code inside: integrates nicely into Apache, IIS, other servers code is executed at request time pages can take parameters ASP: Active Server Pages Scripting languages come with libraries providing Microsoft version of PHP functions specially designed for Web programming: language is essentially Basic e.g.: URL/parameters manipulations, database gateways, ... JSP: Java Server Pages Java version PHP PHP Most popular third-party module for Apache: <html> code and extensive documentation available from <head><title>PHP Test</title></head> http://www.php.net/ <body><? print(“Hello World!”); ?></body> </html> Pieces of code are enclosed into <?...?> tags Example: <html> <html> <head><title>PHP Test</title></head> <head><title>PHP Test</title></head> <body>Hello World!</body> <body><? print(“Hello World!”); ?></body> </html> </html> 1 Parameter Decoding Parameter Decoding Each PHP script can be invoked as a CGI.
Asynchronous Intrusion Recovery for Interconnected Web Services
Asynchronous intrusion recovery for interconnected web services The MIT Faculty has made this article openly available. Please share how this access benefits you. Your story matters. Citation Chandra, Ramesh, Taesoo Kim, and Nickolai Zeldovich. “Asynchronous Intrusion Recovery for Interconnected Web Services.” Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles - SOSP ’13 (2013), Nov. 3-6, 2013, Farminton, Pennsylvania, USA. ACM. As Published http://dx.doi.org/10.1145/2517349.2522725 Publisher Association for Computing Machinery Version Author's final manuscript Citable link http://hdl.handle.net/1721.1/91473 Terms of Use Creative Commons Attribution-Noncommercial-Share Alike Detailed Terms http://creativecommons.org/licenses/by-nc-sa/4.0/ Asynchronous intrusion recovery for interconnected web services Ramesh Chandra, Taesoo Kim, and Nickolai Zeldovich MIT CSAIL Abstract in the access control service, she could give herself write access to the employee management service, use these Recovering from attacks in an interconnected system is new-found privileges to make unauthorized changes to difficult, because an adversary that gains access to one employee data, and corrupt other services. Manually re- part of the system may propagate to many others, and covering from such an intrusion requires significant effort tracking down and recovering from such an attack re- to track down what services were affected by the attack quires significant manual effort. Web services are an and what changes were made by the attacker. important example of an interconnected system, as they are increasingly using protocols such as OAuth and REST Many web services interact with one another using pro- APIs to integrate with one another.
Let’s Encrypt: An Automated Certificate Authority to Encrypt the Entire Web Josh Aas∗ Richard Barnes∗ Benton Case Let’s Encrypt Cisco Stanford University Zakir Durumeric Peter Eckersley∗ Alan Flores-López Stanford University Electronic Frontier Foundation Stanford University J. Alex Halderman∗† Jacob Hoffman-Andrews∗ James Kasten∗ University of Michigan Electronic Frontier Foundation University of Michigan Eric Rescorla∗ Seth Schoen∗ Brad Warren∗ Mozilla Electronic Frontier Foundation Electronic Frontier Foundation ABSTRACT 1 INTRODUCTION Let’s Encrypt is a free, open, and automated HTTPS certificate au- HTTPS [78] is the cryptographic foundation of the Web, providing thority (CA) created to advance HTTPS adoption to the entire Web. an encrypted and authenticated form of HTTP over the TLS trans- Since its launch in late 2015, Let’s Encrypt has grown to become the port [79]. When HTTPS was introduced by Netscape twenty-five world’s largest HTTPS CA, accounting for more currently valid cer- years ago [51], the primary use cases were protecting financial tificates than all other browser-trusted CAs combined. By January transactions and login credentials, but users today face a growing 2019, it had issued over 538 million certificates for 223 million do- range of threats from hostile networks—including mass surveil- main names. We describe how we built Let’s Encrypt, including the lance and censorship by governments [99, 106], consumer profiling architecture of the CA software system (Boulder) and the structure and ad injection by ISPs [30, 95], and insertion of malicious code of the organization that operates it (ISRG), and we discuss lessons by network devices [68]—which make HTTPS important for prac- learned from the experience.
Introduction Points Ahmia.fi - Clearnet search engine for Tor Hidden Services (allows you to add new sites to its database) TORLINKS Directory for .onion sites, moderated. Core.onion - Simple onion bootstrapping Deepsearch - Another search engine. DuckDuckGo - A Hidden Service that searches the clearnet. TORCH - Tor Search Engine. Claims to index around 1.1 Million pages. Welcome, We've been expecting you! - Links to basic encryption guides. Onion Mail - SMTP/IMAP/POP3. ***@onionmail.in address. URSSMail - Anonymous and, most important, SECURE! Located in 3 different servers from across the globe. Hidden Wiki Mirror - Good mirror of the Hidden Wiki, in the case of downtime. Where's pedophilia? I WANT IT! Keep calm and see this. Enter at your own risk. Site with gore content is well below. Discover it! Financial Services Currencies, banks, money markets, clearing houses, exchangers. The Green Machine Forum type marketplace for CCs, Paypals, etc.... Some very good vendors here!!!! Paypal-Coins - Buy a paypal account and receive the balance in your bitcoin wallet. Acrimonious2 - Oldest escrowprovider in onionland. BitBond - 5% return per week on Bitcoin Bonds. OnionBC Anonymous Bitcoin eWallet, mixing service and Escrow system. Nice site with many features. The PaypalDome Live Paypal accounts with good balances - buy some, and fix your financial situation for awhile. EasyCoin - Bitcoin Wallet with free Bitcoin Mixer. WeBuyBitcoins - Sell your Bitcoins for Cash (USD), ACH, WU/MG, LR, PayPal and more. Cheap Euros - 20€ Counterfeit bills. Unbeatable prices!! OnionWallet - Anonymous Bitcoin Wallet and Bitcoin Laundry. BestPal BestPal is your Best Pal, if you need money fast. Sells stolen PP accounts.