Steam сегодня испытывает большие проблемы с кешированием страниц.
Началось все при старте 4го дня новогодней распродажи в Steam. Многие пользователи получили доступ к инструментам администратора в Steam.
Хотя нажатия кнопок эффекта не вызывают, но можно увидеть лог:
При переходе по страницам магазина пользователя кидает в рандомные чужие профили. Можно увидеть и данные пользователя, как например E-mail, телефон, номер кредитной карточки, логин, сумму денег на электронном счете.
По ссылкам вашего аккаунта отображаются чужие данные, например по этим:
store.steampowered.com/account
store.steampowered.com/steamaccount/addfunds
При желании можно составить базу E-mail пользователей Steam.
В коде страницы можно увидеть комментарий:
и рядом ссылку на скрипт для администраторов:
store.steampowered.com//public/javascript/internal_tools.js?v=YfxbUueIZPfu
function FlushHomepage() { HideMenu( 'admin_pulldown', 'admin_dropdown' ); var $CurrentStatus = $J('<div/>'); var $Message = $J('<div/>').text('Please wait, flushing homepage...' ); var Modal = ShowBlockingWaitDialog( 'Flush Homepage', $Message.append( $CurrentStatus ) ); var fnFail = function() { Modal.Dismiss(); ShowAlertDialog( 'Flush Homepage', 'Something went wrong' ); }; $J.post('http://store.steampowered.com/api/prepareupdateglobalcacheversion' ) .done( function( data ) { var global_cache_version = data.global_cache_version; var rgLocales = data.rgLocales; var fnDoLocale = function ( rgLocale ) { return $J.post( 'http://store.steampowered.com/api/primehomepage', { global_cache_version: global_cache_version, l: rgLocale[0], cc: rgLocale[1] }); }; var fnFinalize = function() { $CurrentStatus.text( 'Finalizing...' ); $J.post( 'http://store.steampowered.com/api/updateglobalcacheversion', { global_cache_version: global_cache_version }).done( function() { $CurrentStatus.text( 'Reloading...' ); window.location.reload(); }).fail( fnFail ); }; if ( !data.allow_simultaneous ) { var iLocale = 0; var fnDoNextLocale = function() { if ( iLocale < rgLocales.length ) { var rgLocale = rgLocales[iLocale]; $CurrentStatus.text( 'Priming homepage for ' + rgLocale[0] + ' language in ' + rgLocale[1] + '...'); fnDoLocale( rgLocale ).always( fnDoNextLocale ); iLocale++; } else { // finish fnFinalize(); } }; fnDoNextLocale(); } else { $CurrentStatus.text( 'Priming homepage for ' + rgLocales.length + ' common locales...' ); var rgDeferred = []; for ( var iLocale = 0; iLocale < rgLocales.length; iLocale++ ) { rgDeferred.push( fnDoLocale( rgLocales[iLocale] ) ); } // jQuery.when() does not accept an array, because that would be too easy // so we use apply to pass the arguments in $J.when.apply( window, rgDeferred ).always( fnFinalize ); } } ) .fail( fnFail ); } function FlushApp(appid) { HideMenu( 'admin_pulldown', 'admin_dropdown' ); var Modal = ShowBlockingWaitDialog( 'Flush App', 'Please wait, flushing app information and updating search index...' ); $J.post('http://store.steampowered.com/api/flushcluster', { 'apps[]': appid } ) .done( function( data ) { window.location.reload(); } ) .fail( function() { Modal.Dismiss(); ShowAlertDialog( 'Flush App', 'Something went wrong.' ); } ) } function FlushSub(subscriptionid) { HideMenu( 'admin_pulldown', 'admin_dropdown' ); var Modal = ShowBlockingWaitDialog( 'Flush Package', 'Please wait, flushing package information and updating search index...' ); $J.post('http://store.steampowered.com/api/flushcluster', { 'subs[]': subscriptionid } ) .done( function( data ) { window.location.reload(); } ) .fail( function() { Modal.Dismiss(); ShowAlertDialog( 'Flush Package', 'Something went wrong.' ); } ) }
Пока никаких комментарием от Valve не поступило по поводу этого инцидента.
ссылка на оригинал статьи http://geektimes.ru/post/268352/
Добавить комментарий