PDF de programación - the original hacker 01 201311

Imágen de pdf the original hacker 01 201311

the original hacker 01 201311gráfica de visualizaciones

Publicado el 11 de Julio del 2017
1.620 visualizaciones desde el 11 de Julio del 2017
711,7 KB
29 paginas
Creado hace 10a (05/11/2013)
THE ORIGINAL HACKER
SOFTWARE LIBRE, HACKING y PROGRAMA-
CIÓN, EN UN PROYECTO DE

EUGENIA BAHIT


@eugeniabahit

GLAMP HACKER Y
PROGRAMADORA EXTREMA
HACKER ESPECIALIZADA EN PROGRAMACIÓN
EXTREMA E INGENIERÍA INVERSA DE CÓDIGO
SOBRE GNU/LINUX, APACHE, MYSQL,
PYTHON Y PHP. EUGENIABAHIT.COM

DOCENTE E INSTRUCTORA DE TECNOLOGÍAS
GLAMP CURSOS.EUGENIABAHIT.COM
CURSOSDEPROGRAMACIONADISTANCIA.COM

MIEMBRO DE LA FREE SOFTWARE
FOUNDATION FSF.ORG, THE LINUX
FOUNDATION LINUXFOUNDATION.ORG E
INTEGRANTE DEL EQUIPO DE DEBIAN
HACKERS DEBIANHACKERS.NET.

CREADORA DE PYTHON-PRINTR, EUROPIO
ENGINE, JACKTHESTRIPPER. VIM CONTRI-
BUTOR. FUNDADORA DE HACKERS N'
DEVELOPERS MAGAZINE Y RESPONSABLE
EDITORIAL HASTA OCTUBRE '13.

Buenos Aires, 5 de
Noviembre de 2013

ÍNDICE DE LA
EDICIÓN NRO1

SHELL SCRIPTING

ENVIADOS POR LÍNEA DE COMANDOS MEDIANTE PYTHON
CON ARGPARSE.................................3

: ANÁLISIS DE ARGUMENTOS

PROCESOS DE RAZONAMIENTO INVERSO

DISEÑO ADAPTER EN PYTHON Y PHP, LOS “CÓMO” Y
LOS “PARA QUÉ”..............................10

: PATRÓN DE

INGENIERÍA DE SOFTWARE

INSTALACIÓN/DESINSTALACIÓN EN LOS PAQUETES
DEBIAN......................................17

: ARCHIVOS PRE Y POST

EUROPIO ENGINE LAB
: FORMULARIOS WEB Y TABLAS

HTML EN SOLO UNOS POCOS PASOS..............20

SEGURIDAD INFORMÁTICA

SEGURIDAD TEMPORALES COMO MECANISMO DE
VERIFICACIÓN EN EL REGISTRO DE USUARIOS... . .26

: EMULACIÓN DE TOKENS DE

The Original Hacker – www.originalhacker.org

®2013 Eugenia Bahit – www.eugeniabahit.com – Bajo Licencia Creative Commons BY-NC-SA

3

SHELL SCRIPTING:
ANÁLISIS DE ARGUMENTOS
ENVIADOS POR LÍNEA DE
COMANDOS MEDIANTE PYTHON
CON ARGPARSE

ARGPARSE ES UN MÓDULO DE
LA LIBRERÍA ESTÁNDAR DE
PYTHON, QUE REEMPLAZANDO
A OPTPARSE DESDE LA
VERSIÓN 2.7 DEL
LENGUAJE, SE HA
CONVERTIDO EN EL MÓDULO
POR EXCELENCIA PARA
ANALIZAR LOS ARGUMENTOS
ENVIADOS A TRAVÉS DE LA
LÍNEA DE COMANDOS.

E

l módulo argparse forma parte de la librería de módulos
estándar de Python y su finalidad es la de analizar los
argumentos enviados al programa mediante línea de
comandos, facilitando las mismas funcionalidades que el obsoleto
optparse pero incorporando ciertas características con las que
éste no contaba.

Se trata de un módulo muy simple de utilizar y no necesariamente
será implementado solo por especialistas en Python: también es
una excelente alternativa para crear de forma rápida un script
principal (main) para cualquier tipo de aplicación de consola,
incluso, aquellas programadas con bash u otros lenguajes que no
cuenten con tanta facilidad para, por ejemplo, el análisis de
argumentos y/o la generación de ayudas en pantalla.

Con solo agregar una lista de argumentos a ArgumentParser(),
el módulo se encargará de poner a disposición del usuario de la
aplicación, los argumentos -h y --help y generar de forma
automática, textos de ayuda similares al siguiente:

eugenia@cococha-gnucita:~/HDMagazine/12$ python newhost --help
usage: newhost [-h] [-v] -d DOMAIN [-a [ALIAS [ALIAS ...]]]
[-l [{static,python,php}]] [-u USERNAME] [-p PATH]
[-lp LOGPATH] [--send-email] [-e EMAIL]

Prepara el ambiente necesario para hospedar un nuevo dominio en Ubuntu Server
12.04 LTS o versiones posteriores

optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit

The Original Hacker – www.originalhacker.org

®2013 Eugenia Bahit – www.eugeniabahit.com – Bajo Licencia Creative Commons BY-NC-SA

4

-d DOMAIN, --domain DOMAIN
Nombre del dominio a configurar
-a [ALIAS [ALIAS ...]], --alias [ALIAS [ALIAS ...]]
Alias de dominio
-l [{static,python,php}], --language [{static,python,php}]
Lenguaje predeterminado del sitio Web
-u USERNAME, --user USERNAME
Usuario del dominio
-p PATH, --path PATH Directorio raíz de archivos Web
-lp LOGPATH, --log-path LOGPATH
Directorio en el que serán almacenados los logs de
Apache
--send-email Si se indica, enviará un e-mail con los datos del
nuevo dominio.
-e EMAIL, --email EMAIL
Válido si --send-email se ha indicado.

Como se puede observar en el bloque anterior, dos argumentos por defecto, son descriptos al comienzo: help
y version. Ambos son facilitados por argparse para mostrar la ayuda y versión del programa,
respectivamente. Incluso, la ayuda de uso será mostrada si los argumentos recibidos no son los esperados:

eugenia@cococha-gnucita:~/HDMagazine/12$ python newhost
usage: newhost [-h] [-v] -d DOMAIN [-a [ALIAS [ALIAS ...]]]
[-l [{static,python,php}]] [-u USERNAME] [-p PATH]
[-lp LOGPATH] [--send-email] [-e EMAIL]
newhost: error: argument -d/--domain is required

Todo esto es lo que argparse pondrá a disposición del usuario, con unas pocas líneas de código fuente.

INTRODUCCIÓN
Importación del módulo:
Para comenzar a utilizar argparse, bastará con importar la clase ArgumentParser():

from argparse import ArgumentParser

Construcción de un objeto ArgumentParser:
Construir un objeto ArgumentParser, es una forma de inicializar los datos principales de la aplicación. El
método constructor del objeto ArgumentParser (función __init__), si bien puede ser invocado sin argumentos,
permite (entre otros), los siguientes parámetros:

prog por defecto es el nombre del archivo aunque en circunstancias muy puntuales,
podría modificarse

description una descripción del programa que será mostrada al inicio de la ayuda

epilog texto que será mostrado al final de la ayuda

The Original Hacker – www.originalhacker.org

®2013 Eugenia Bahit – www.eugeniabahit.com – Bajo Licencia Creative Commons BY-NC-SA

5

version número de versión del programa

Todos estos parámetros son opcionales pero sin embargo, si se indicase el parámetro version,
automáticamente dispondríamos de la opción -v y –version:

#!/usr/bin/env python

from argparse import ArgumentParser

argp = ArgumentParser(

version='1.0',
description='Descripción breve del programa',
epilog='Copyright 2013 Autor bajo licencia GPL v3.0'

)

Otros parámetros admitidos por ArgumentParser.__init__() pueden verse en la siguiente URL del
manual oficial: http://docs.python.org/2/library/argparse.html#argumentparser-objects

AGREGANDO ARGUMENTOS CON ARGUMENTPARSER.ADD_ARGUMENT
Cuando se crea un objeto ArgumentParser, éste dispone de un método add_argument() que como su
nombre lo indica, tiene por finalidad agregar argumentos de a uno por vez. Este método, puede recibir como
parámetro, un nombre de argumento o una lista de banderas (flags). Por ejemplo:

argp.add_argument('directorio', '-d', '--directorio')
argp.add_argument('dominio')
argp.add_argument('-l')
argp.add_argument('--listar')
argp.add_argument('-p', '--printer')

Además del argumento en sí mismo, add_argument() puede recibir muchos otros parámetros. Entre los más
frecuentes, podemos encontrar los siguientes:

action
Descripción: Acción que se deberá realizar con el valor del argumento.
Valores posibles:

store
store_const

almacena el valor (acción predeterminada)
si el argumento es pasado, almacenará el valor definido en el parámetro
const (ver más abajo). Es útil cuando se requiere recibir un flag pero
sin valor asociado

store_true / store_false

Igual que store_const pero no necesita definir el valor de const

The Original Hacker – www.originalhacker.org

®2013 Eugenia Bahit – www.eugeniabahit.com – Bajo Licencia Creative Commons BY-NC-SA

6

ya que almacenarán True o False respectivamente en caso que el
argumento sea pasado

append

almacena los valores del argumento en una lista. Es útil cuando un
mismo argumento puede indicarse varias veces con diferentes valores
Por ejemplo: --argumento valor1 --argumento valor2 generararía
argumento = ['valor1', 'valor2']

append_const almacena el valor de const en una lista. Especialmente útil cuando

el valor de diferentes argumentos es una constante y se los necesita
de forma unificada (ver ejemplo para mejor comprensión). Requiere que
el parámetro dest (ver más abajo) posea el mismo valor en los
diferentes argumentos

Valor por defecto: store
Obligatorio: NO
Ejemplo:

argp.add_argument('--table', action='store')
--table foo genera: table = 'foo'
argp.add_argument('--table', action='store_const', const='users')
--table genera: table = 'users'
argp.add_argument('--table', action='append')
--table foo --table bar genera: table = ['foo', 'bar']
argp.add_argument('--php', dest='lenguajes',

action='append_const', const='php')

argp.add_argument('--python', dest='lenguajes',

--php --python genera: lenguajes = ['php', 'python']

action='append_const', const='python')

nargs
Descripción: Cantidad de valores que pueden recibirse para el argumento en cuestión.
Valores posibles: el literal de un entero (incluso cuando sea 1, retornará una lista), o sino:

?
+
*
REMAINDER

uno o ninguno
uno o más
cero o más
todos los argumentos se recogen en una lista.
Esto es especialmente útil, cuando los comandos recibidos se requieren
pasar a otra aplicación.

Valor por defecto: uno solo
Obligatorio: NO
Ejemplo:

The Original Hacker – www.originalhacker.org

®2013 Eugenia Bahit – www.eugeniabahit.com – Bajo Licencia Creative Commons BY-NC-SA

7

argp.add_argument('--table', nargs='+')
argp.add_argument('--rango', nargs=2)

default
Descripción: Un valor por defecto para el argumento.
Valores posibles: cualquiera
Valor por defecto: ninguno
Obligatorio: NO
Ejemplo:

argp.add_argument('--host', default='localhost')

type
Descripción: El tipo de datos
Valores posibles: str
  • Links de descarga
http://lwp-l.com/pdf5173

Comentarios de: the original hacker 01 201311 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad