iOS 17.3 beta 1 aggiunge una nuova funzione di sicurezza, particolarmente utile nel caso in cui ci venisse rubato l’iPhone. Spesso gli utenti utilizzano dei codici di sblocco piuttosto semplici come un banale 123456 oppure, ancora più comune, una data di nascita che potrebbe essere già nota al ladro oppure la si potrebbe ottenere facilmente da un documento di identità qualora il furto includesse anche il portafogli.
All’inizio dell’anno, il Wall Street Jorunal ha riportato casi in cui i ladri spiavano il codice di sblocco dell’iPhone di una vittima prima di rubare il dispositivo, spesso in luoghi pubblici come i bar.
Conoscendo il codice di sblocco, un ladro può accedere alla HomeScreen e quindi a qualsiasi applicazione, può reimpostare la password dell’ID Apple della vittima, disattivare Trova il mio iPhone, visualizzare tutte le password memorizzate nel telefono, inclusi gli account bancari, può utilizzare Apple Pay per effettuare pagamenti e tanto altro ancora: sostanzialmente il ladro si impossessa interamente di quell’iPhone e dell’intera vita digitale della vittima.
Grazie alla nuova invenzione di Apple invece, attivando la Protezione del dispositivo rubato, viene richiesta un’autenticazione biometrica aggiuntiva, quindi tramite Face ID o Touch ID. Inoltre, per azioni particolarmente sensibili quali il cambiamento della password dell’ID Apple, la funzione aggiunge anche un ritardo di sicurezza, oltre all’autenticazione biometrica. In questo modo, l’utente dovrà autenticarsi prima con il Face ID o Touch ID (cosa che un ladro sicuramente non potrà fare) poi attendere un’ora ed autenticarsi nuovamente con il Face ID o Touch ID prima di riuscire ad entrare nella schermata di cambio password. Chi ruba un iPhone e poi scappa via, di sicuro non potrà portare a termine questi passaggi e se non riuscirà a cambiare la password dell’ID Apple, il proprietario potrà sempre bloccare da remoto il proprio iPhone ed eliminare tutti i dati salvati al suo interno.
Apple ha però dichiarato che non ci sarà il ritardo di 1 ora per la doppia autenticazione qualora l’iPhone si trovasse in luoghi familiari come casa o lavoro.
L’utilizzo di questa nuova funzione è facoltativa. Per attivarla bisogna entrare in Impostazioni > Face ID e codice > Protezione dispositivo rubato. Noi vi consigliamo di attivarlo!
Gli utenti che aggiornano alla versione beta per sviluppatori di iOS 17.3, riceveranno una richiesta per testare questa funzione in anteprima subito dopo l’installazione. Chi invece installerà la beta pubblica (che dovrebbe essere disponibile da domani) non visualizzerà questo avviso.
L’elenco delle azioni che richiederanno l’autenticazione Face ID o Touch ID quando la funzione è attiva sono:
- Visualizzazione/utilizzo di password o codici di accesso salvati nell’Archivio chiavi iCloud
- Richiesta di una nuova Apple Card
- Visualizzazione di una carta virtuale salvata in Wallet
- Disattivazione della Modalità Smarrito
- Cancellazione di tutti i contenuti e le impostazioni
- Tutte le operazioni di pagamento nell’app Wallet
- Utilizzo di metodi di pagamento salvati in Safari
- Utilizzo dell’iPhone per configurare un nuovo dispositivo
L’elenco delle azioni che richiederanno l’autenticazione Face ID o Touch ID a cui seguirà un ritardo di sicurezza di 1 ora prima di ripetere l’autenticazione sono:
- Cambio della password dell’ID Apple
- Aggiornamento di determinate impostazioni di sicurezza dell’account ID Apple, incluso l’aggiunta o la rimozione di un dispositivo attendibile, numero di telefono attendibile, chiave di recupero o contatto di recupero
- Cambio del codice di accesso dell’iPhone
- Aggiunta o rimozione di Face ID o Touch ID
- Disattivazione di Trova il mio iPhone
- Disattivazione della Protezione dispositivo rubato
Apple ha dichiarato di avere l’intenzione di condividere documentazione aggiuntiva sulla Protezione dispositivo rubato per chiarire il funzionamento a tutti gli utenti. L’opzione sarà disponibile su tutti i modelli di iPhone compatibili con iOS 17, compreso l’iPhone XS e successivi. iOS 17.3 sarà probabilmente rilasciato al pubblico a fine gennaio o febbraio.
// Logica completa dello shortcode 'app' function appstore_shortcode_logic($atts, $content = null) { // Attributi di default $atts = shortcode_atts(array( 'id' => '', 'img' => '', 'nome' => '', 'sottotitolo' => '', 'prezzo' => '', 'link' => '', 'store' => 'App Store', 'template' => '', 'inapp' => '', 'background' => '', 'link_icon' => '', ), $atts, 'card'); // Verifica del valore dell'attributo 'stile' $template_class = !empty($atts['template']) ? sanitize_html_class($atts['template']) : ''; // Verifica se il file JSON della cache esiste $cache_dir = '/srv/www/ispazio.net/www/wp-content/plugins/appstore_ispazio/app_cache/'; $cache_file = $cache_dir . "app_" . sanitize_key($atts['id']) . ".json"; // Determina se la cache è valida: JSON esiste, non scaduto E icona principale esiste sul disco $_app_id_check = sanitize_key($atts['id']); $_img_main_path = $cache_dir . "icon250_" . $_app_id_check . ".jpg"; $_cache_valid = file_exists($cache_file) && filesize($cache_file) > 0 && time() - filemtime($cache_file) < 31557600 && file_exists($_img_main_path); if ($_cache_valid) { $json = file_get_contents($cache_file); } else { // Interroga l'API di App Store e scarica il JSON utilizzando cURL $itunes_api_base = "https://itunes.apple.com/lookup?id=" . sanitize_key($atts['id']); $country_list = ['IT', 'US']; // puoi aggiungere altri paesi se vuoi $json = ''; $data = []; foreach ($country_list as $country) { $itunes_api_url = $itunes_api_base . "&country=" . $country; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $itunes_api_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); $json = curl_exec($ch); curl_close($ch); $data = json_decode($json, true); if (!empty($data['results'])) { break; // abbiamo trovato un risultato valido, fermiamo il ciclo } } if (isset($data['results'][0]['artworkUrl100'])) { $original_image_url = $data['results'][0]['artworkUrl100']; $new_image_url = str_replace('100x100bb.jpg', '250x250bb.jpg', $original_image_url); // Scarica e salva l'immagine dell'artwork sul tuo server $image_id = sanitize_key($atts['id']); $image_path = $cache_dir . "icon250_" . $image_id . ".jpg"; file_put_contents($image_path, file_get_contents($new_image_url)); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($image_path); // Modifica il JSON con l'URL dell'immagine dell'artwork sul tuo server $data['results'][0]['artworkUrl100'] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_" . $image_id . ".jpg"; // Crea anche versione 140px per template mini (retina 2x per 70x70) $icon140_path = $cache_dir . "icon140_" . $image_id . ".jpg"; if ( ! file_exists( $icon140_path ) && function_exists( 'imagecreatefromjpeg' ) ) { $src_img = @imagecreatefromjpeg( $image_path ); if ( $src_img ) { $dst_img = imagecreatetruecolor( 140, 140 ); imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, 140, 140, imagesx( $src_img ), imagesy( $src_img ) ); imagejpeg( $dst_img, $icon140_path, 85 ); imagedestroy( $src_img ); imagedestroy( $dst_img ); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($icon140_path); } } // Sostituisci anche gli URL delle prime 4 immagini degli screenshot if (isset($data['results'][0]['screenshotUrls'])) { $screenshotUrls = $data['results'][0]['screenshotUrls']; $screenshotUrlsOnServer = array(); for ($i = 0; $i < min(count($screenshotUrls), 4); $i++) { $screenshotUrl = $screenshotUrls[$i]; $screenshotFilename = basename($screenshotUrl); $screenshotSavePath = $cache_dir . "screenshot_" . $image_id . "_" . $i . ".jpg"; // Scarica e salva l'immagine dello screenshot sul tuo server file_put_contents($screenshotSavePath, file_get_contents($screenshotUrl)); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($screenshotSavePath); // Modifica il JSON con l'URL dell'immagine dello screenshot sul tuo server $screenshotUrlsOnServer[] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/screenshot_" . $image_id . "_" . $i . ".jpg"; } // Aggiorna il JSON con gli URL delle immagini degli screenshot sul tuo server $data['results'][0]['screenshotUrls'] = $screenshotUrlsOnServer; } } // Salva il JSON nella cache solo se non è vuoto if (!empty($json)) { file_put_contents($cache_file, json_encode($data)); } } // Decodifica il JSON $data = json_decode($json, true); // Se il "nome" non è specificato nell'attributo, usa il trackName dal JSON $nome = isset($atts['nome']) && !empty($atts['nome']) ? $atts['nome'] : ($data['results'][0]['trackName'] ?? 'Scarica da App Store'); // Se il "sottotitolo" non è specificato nell'attributo, usa artistName dal JSON $sottotitolo = isset($atts['sottotitolo']) && !empty($atts['sottotitolo']) ? $atts['sottotitolo'] : ($data['results'][0]['artistName'] ?? ''); // Se il "prezzo" non è specificato nell'attributo, usa il formattedPrice dal JSON $formattedPrice = !empty($data['results'][0]['formattedPrice']) ? $data['results'][0]['formattedPrice'] : null; $prezzo = !empty($atts['prezzo']) ? $atts['prezzo'] : (!empty($formattedPrice) ? $formattedPrice : (!empty(trim($content)) ? trim($content) : 'OTTIENI')); // Se l'URL dell'immagine non è specificato nell'attributo, usa quello dal JSON $hide_image_class = ''; $card_body_style = ''; $container_style = ''; $container_extra_class = ''; if (isset($atts['img']) && trim($atts['img']) === 'scontiamolo') { $img = 'https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_1506946624.jpg'; $container_extra_class = 'scontiamolo-mode'; } elseif (!empty($atts['img'])) { $img = $atts['img']; } else { $img = $data['results'][0]['artworkUrl100'] ?? "https://www.ispazio.net/wp-content/uploads/2022/10/appstore_icon.png"; } // Per template mini usa icon140 (70x70 retina) invece di icon250 if ( $template_class === 'mini' ) { $img = str_replace( 'icon250_', 'icon140_', $img ); } // Genera il link dell'app su App Store $link = !empty($atts['link']) ? $atts['link'] : "https://apps.apple.com/it/app/id" . $atts['id'] . "?platform=iphone"; $link_icon = !empty($atts['link_icon']) ? $atts['link_icon'] : $link; // HTML immagine con o senza effetto rotazione (in base a template) $img_html = ''; if (!empty($img)) { if ($template_class === 'striscia') { $img_html = '





















































































































































































































































Accedi per lasciare un commento:
15 Commenti