Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - @XSStringManolo

#1021
Es algo así:

if (variable === null)
alert ("Variable Vacia");

if (variable === 0)
alert ("Variable contiene valor cero");

if (variable === undefined)
alert ("variable está sin definir");

try
{
if (variable);
}
catch(error)
alert("Variable no se declaró");

Para tipos referenciados necesitas utilizar la keyword instanceof

Esto todo funciona así porque == transforma los tipos de datos al compararlos. === no hace casteo implícito.
Para que la función try catch funcione debes usar el modo estricto.
Pon la siguiente línea del código como primera sentencia dentro de las etiquetas script.
"use strict";

Si quieres una explicación extendida, viene todo explicado y detallado en el libro THE PRINCIPLES OF OBJECT-ORIENTED javascript.  Author Nicholas C. Zakas.  Publicado por No Starch Press.

Para conocimientos imprescindibles sobre el lenguaje es obligado ELOQUENT javascript Third Edition A Modern Introduction To Programming  Author Marjin Haverbeke. Publicado por No Starch Press.

Por los título ya sabes que están en inglés.
#1022
PHP / Re: Problema con clonar input y traer datos.
28 Diciembre 2019, 22:54 PM
Exporta todos los script y hojas de estilo a documentos externos. Bloquea inline javascript. Utiliza sentencias preparadas. Parsea el input recibido en el PHP. Opcionalmente parsea en el cliente el envio para reducir carga del servidor enviando consultas no válidas. Y opcionalmente puedes parsear la respuesta en el cliente usando un text node o cambiando los símbolos por sus entidades correspondientes. Admite solo cargar recursos de tus archivos o librerías de terceros que uses.
#1023
Foro Libre / Re: Huawei... ¿me están espiando?.
28 Diciembre 2019, 22:15 PM
Si quieres evidencias:

Captura los paquetes bt desde otro Android con la opción Enable Bluetooth HCI snoop log.

Captuta el resto de tráfico con Wireshark.

Los huawei y los lenovo son 100% bloatware.
Aquí tienes una lista de apps que te pueden resultar interesantes:
https://foro.elhacker.net/android/aplicaciones_utiles_para_android-t499124.0.html

Yo tengo varios modelos muy raros que no están ni en las bases de datos de los ISP y vienen muy llenos de malware. Para estos casos lo mejor es cambiarle la rom.
Este es uno de los que tengo, hasta el playStore detecta malware en el sistema. xD
https://forum.zwame.pt/threads/smartphone-deco-2018-5-android-7-0-nougat-quad-core-1-3ghz-1gb-ram-8-mpx-tras-5-mpx-frontal.1008028/

Si quieres privacidad y que no vendan tus datos usa otro sistema open source.
https://itsfoss.com/open-source-alternatives-android/
#1024
Redes / Re: Puertos
28 Diciembre 2019, 16:27 PM
Si puedes establecer comunicaciones, tener servidores y prácticamente utilizar cualquier aplicación que necesite puertos abiertos sin abrir puertos. Necesitas un servidor externo/proxy de intermediario. Hay muchas formas de implementarlo depende del tráfico que sea. Una de las más sencillas es tunelar por HTTP todo el tráfico utilizando base64. No es lo más óptimo ya que agrandas el tráfico, pero si lo más sencillo, ya que no te cargas el encapsulado.

Lo más lógico es que mantengas una conexión abierta en vez de el clásico enviar petición cerrar conexión que se usa más asiduamente con este protocolo. Conexión Persistente HTTP

Depende el tipo de tráfico y lo que necesites puedes usar un hosting gratuito, o trendrás que usar un VPS ya que si bien el protocolo HTTP te permite establecer conexiones y dejarlas abiertas, otro software como pueda ser Apache o PHP cierran las conexiones automáticamente cada 15 y 30 segundos respectivamente para optimizar los servicios. Esto se puede configurar si tu hosting o VPS te lo permiten. Apache Directiva KeepAlive, PHP Tiempo Maximo de Ejecución.

Si quieres correr un cliente en Android en el background o cualquier app para mantener la conexión vas a tener que pelearte con el Garbage Collector. El GC de Android te puede cerrar la conexión asique necesitarás manejarlo. Puedes hacer una copia en PHP y en onStop abrir otra instancia que abra una nueva comunicación e informar al PHP para volver a retrasmitir desde el bloque perdido. Hay otras alternativas. Por ejemplo utilizar el modo multiventana o mejor aún un Launcher desde el que hagas intents a tus aplicaciones de uso normal mientras corres el cliente/servidor en la misma instancia.

Técnicamente realizar esta configuración de esta forma es bastante sencillo. No es ni de cerca lo más óptimo que se puede hacer, pero sin tener muchos conocimientos y teniendo tiempo te sirve para salir del paso. También tiene sus ventajas. Puedes procesar el tráfico antes de recibirlo, automatizar cosas, responder automáticamente, un firewall custom para solicitudes no deseadas, bases de datos con el tráfico y no necesitas mostrar la IP. A parte te sirve para todo tipo de tráfico. Puedes alquilarle el servicio a amigos.
#1025
Cita de: AlbertoBSD en 28 Diciembre 2019, 06:19 AM
Existen muchas cosas a considerar al migrar un sitio a otro hosting, cosas como la base de datos, los directorios, las configuraciones del servidor y demás. Yo hice una migración de un Hosting de Wordpress algo pesado a otro servidor, Se copiaron los archivos se realizaron las configuraciones y ya al ultimo ya que se comprobó que todo funcionaba se redireccionó el DNS y no tuvimos ni un minuto de Downtime.

Fue totalmente transparente para los usuarios, ya solo depende de la propagación del DNS.

Por cierto si no nos dices que pagina es no te podemos ayudar

Saludos!
Si no estás usando una raspy o algo así como único servidor y quieres formatearlo todo es lo lógico. Lo malo es lo que dices del dns.
#1026
Cita de: engel lex en 28 Diciembre 2019, 02:12 AM
eso si es verdad aunque la computacion cuantica tampoco es que mate los cifrados... aun falta crear las respectivas formulas y algoritmos para ellos de manera eficiente... es todo otro mundo en muchos aspectos
En cierto aspecto no creo ni que rente. Para que vas romper una caja fuerte cuando puedes sentarte delante esperando a que la abran y mirar lo que entra y lo que sale xD
#1027
Puedes pasar el link? A pásanos el código fuente que te devuelve la petición o utiliza este script: https://github.com/StringManolo/SM_view-source
Cargas tu web, pones el script que hay dentro del link que te pasé en la barra de búsquedas y así ves el código fuente sin formatear pintado de amarillo. Haces click en el, despues doble click, seleccionar todo y lo pones aquí.
Asegúrate de que no tienes info sensible en el código. No uses el ver código fuente que te trae el navegador porque parsean.
#1028
Cita de: engel lex en 28 Diciembre 2019, 01:37 AM
ese era un ideal hasta que los informaticos entendieron la fisica cuantica y el principio de localidad... basicamente no se puede hacer de manera practica y segura...
Ohhh, qué pena! Seguro que ya existen formas que aún no se nos han ocurrido.
#1029
Vaya título más engañoso.
#1030
Cita de: engel lex en 27 Diciembre 2019, 16:25 PM
por lo que veo el error es aqui

Código (python) [Seleccionar]
s.connect(("http://www.google.com", 80))


gaierror es error en el get address info

basicamente le estas diciendo que se conecte el host "http://www.google.com" y cuando intenta hacer la resolucion, ese host es invalido porque tiene simbolos como : y / , y no puede resolver la direccion ip

en pocas palabras, pasa el host... no tienes que pasar el protocolo http:// porque socket no entiende eso, es una interfaz de bajo nivel
Grache buen cheñor.

Si no me lo dices seguro que me habría tirado horas a intentar resolverlo. Habría probado hasta a crear un server DNS para que me resolviera el dominio creo yo.

Código (python) [Seleccionar]
import socket
def cliente(host, puerto, contenido):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((host, puerto))
    contenido="GET /index.html HTTP/1.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n"
    contenido = contenido.encode('utf-8')
    s.sendall(contenido)
    response = b''
    while 1:
        recv = s.recv(2048)
        resp = repr(recv)
        respT= len(resp)
        if respT < 5:
            break
        response += recv
    s.shutdown(socket.SHUT_WR)
    s.close()
    return response
   
respuesta = cliente("google.com" , 80 , 1)
print(respuesta)
print("Fin ejec")


Voy a ver si hago con un colega un rat multiplataforma que importe módulos con kivy o algo así que se ve chulo.