
На пути к созданию безопасного веб-ресурса. Часть 2 — разработка

User
gmail.com/json?action=inbox
, который возвращает 50 первых сообщений вашего почтового ящика в формате JSON. Злоумышленник, чей сайт находятся на другом домене, не может выполнить AJAX запрос, обратившись по данному URL, чтобы получить данные, ввиду same origin policy (правило ограничения домена). Но ничто не мешает злоумышленнику включить вышеуказанный URL на свою страницу с помощью тега .
for (int i = 0; i < 1000*1000*1000; i++) {
Foo foo = new Foo();
}
TL;DR
Эта обзорная статья. Такое себе "краткое содержание предыдущих серий". Она будет полезна для новичков, или тех, кто не следил за отраслью в последнее время. Для новичков это будет первый шаг во "Вселенную JavaScript", бывалые смогут освежить свои знания.
public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for (Entry<K,V> e = table[indexFor(hash, table.length)];
e != null;
e = e.next) {
Object k;
if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
return e.value;
}
return null;
}
/**
* Offloaded version of get() to look up null keys. Null keys map
* to index 0. This null case is split out into separate methods
* for the sake of performance in the two most commonly used
* operations (get and put), but incorporated with conditionals in
* others.
*/
private V getForNullKey() {
for (Entry<K,V> e = table[0]; e != null; e = e.next) {
if (e.key == null)
return e.value;
}
return null;
}
Уверен, что я не одинок в своих мучениях с новыми devtools в новом Safari. И когда они в очередной раз меня одолели, я, как человек разумный, обратился за помощью к гуглу.
Гугл предложил мне несколько вариантов избавления от страданий:
Первый вариант мне не подошел по причине отсутствия такового пункта меню в имеющихся билдах Safari.
Второй не подошел из-за мaлой вероятности положительного исхода.
Третий не устроил тем, что WebKit конфликтовал с каким-то установленным в Safari расширением и при попытке открыть любую страницу немногим сложнее ya.ru вешался намертво. Разбираться с этим было влом, да и плодить зоопарк из браузеров не очень хотелось (у меня их итак штук семь установлено).
Если вас не смущает WebKit, то можете смело его использовать и дальше не читать.