У Steam проблемы с кешированием, из-за которой пользователи видят информацию о чужих аккаунтах

от автора

image
Steam сегодня испытывает большие проблемы с кешированием страниц.

Началось все при старте 4го дня новогодней распродажи в Steam. Многие пользователи получили доступ к инструментам администратора в Steam.

image
Хотя нажатия кнопок эффекта не вызывают, но можно увидеть лог:
image

При переходе по страницам магазина пользователя кидает в рандомные чужие профили. Можно увидеть и данные пользователя, как например 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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *