Scripts

Introdução à Programação em Lua

, Lua é uma linguagem de script amplamente usada nas mais diversas áreas, desde grandes aplicativos para desktops, como o Adobe Photoshop Lightroom, até software para sistemas embarca- dos. Lua é a linguagem mais usada atualmente para scripting em jogos, e é parte do padrão Ginga para o Sistema Brasileiro de TV Digital. Lua também é muito usada na área de segurança, sendo a linguagem de script embutida em ferramentas como Wireshark, snort e nmap. Este texto apresenta a linguagem Lua com ênfase nos seus mecanismos menos convencionais. O objetivo é introduzir a linguagem e ao mesmo tempo apresentar algumas técnicas de programação não convencionais, como o uso de funções de mais alta ordem, co-rotinas e APIs entre linguagens. Espera-se do leitor alguma maturidade na área de programação e conhecimento da linguagem C, para a discussão da API entre Lua e C.

Uma Introdução à Programação em Lua

Marcadores: , , , , , , ,



# 8/27/2009 08:48:00 PM, Comentários, Links para esta postagem,

Lua Frequently Asked Questions ( FAQ )

Programming in Lua Image by Metaphox via Flickr

Lua Frequently Asked Questions (FAQ)


Marcadores: , , , , , , , , , ,



# 8/16/2009 04:30:00 AM, Comentários, Links para esta postagem,

Lua for Windows - Short Introduction and Files

PSP Lua script Image by toufeeq via Flickr

Lua for Windows - A Short Introduction.

1. What is Lua?
2. What is Lua for Windows?
3. What comes with Lua for Windows?
4. Using Lua for Windows.
4.1 Running Lua Programs.
4.2 Editing Lua Programs.
4.3 Debugging Lua Programs.
4.4 Using Lua without command console.
5. Concise Overview of Lua Programming Language.
6. Libraries included with Lua for Windows.
7. Learn more about Lua.
8. Acknowledgments.



1. What is Lua?

Lua is a small, fast, interpreted scripting language. Lua is the result of a merger of a configuration language (SOL) and a data entry language (DEL) . Lua's original goal was to be an extensible embedded scripting language inside software applications. Lua has been highly successful as an embedded scripting language and is used in many games, firmware and software applications. With the recent addition of modules, Lua now has a standard method to load libraries. Lua together with Lua libraries enables a complete standalone scripting language.

Lua's unique focus on extensibility, simplicity, efficiency and portability make it a small yet powerful scripting language. Lua is often used as a Domain Specific Language due to its small size, embeddability and portability. Lua supports a small set of general features and provides meta-mechanisms to allow the programmer to support programming styles of their choice.

Lua was developed by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, and Waldemar Celes at the Pontifical University of Rio de Janeiro (PUC-Rio), in Brazil.

Lua means Moon in Portuguese, so be ready for libraries with references to space or the moon, and enjoy.


2. What is Lua for Windows?

Lua for Windows is a 'batteries included environment' for the Lua scripting language on Windows.

Lua for Windows combines Lua binaries, Lua libraries with a Lua-capable editor in a single install package for the Microsoft Windows operating system. Lua for Windows contains everything you need to write, run and debug Lua scripts on Windows. A wide variety of libraries and examples are included that are ready to use with Microsoft Windows. Lua for Windows runs on Windows 2000 and newer versions of Windows. Lua and its associated libraries are also available for other operating systems, so most scripts will be automatically cross-platform.


/
Parent Directory


/
cd


/
im


/
iup


/
md5


/
date


/
loop


/
lpeg


/
luabitops


/
alien


/
copas


/
lanes


/
lpack


/
luaex


/
luagd


/
luagl


/
rings


/
wxlua


/
scripts


/
luasocket


/
lualogging


/
metalua


/
lrexlib


/
luacurl


/
luatask


/
luaunit


/
luaexpat


/
lua5.1


/
luacom


/
luadoc


/
luasql


/
luaxml


/
luazip


/
coxpcall


/
stdlib


/
luainterface


/
lexecutor


/
vstruct


/
classlib


/
luafilesystem


/
luaprofiler


misc
Lua PiL Book.url

49 octets
text/html
luaforwindows.html

53455 octets
text/html
luarefv51.html

168347 octets


Related articles by Zemanta

Marcadores: , , , , , , , , , ,



# 8/11/2009 03:48:00 AM, Comentários, Links para esta postagem,

Segurança - os 25 erros de programação mais perigosos

, Saiu no portal da SANS a lista criada com o consenso entre vários profissionais e empresas do ramo de segurança e desenvolvimento descrevendo os 25 erros de programação mais perigosos para o desenvolvimento seguro. Eu vou traduzir os nomes e informação básicos mas o melhor é ler o artigo na íntegra, em inglês.
Os erros estão separados em três categorias: Interação insegura entre componentes, Gerenciamento arriscado de recursos, Defensas porosas.
Categoria: Interação insegura entre componentes
  1. Validação Imprópria de Entradas: Entradas que recebem dados e os aceitam mesmo sem certificar que eles são do tipo/formato esperado.
  2. Codificação ou Escape Impróprios de Saída: Saídas que não são codificadas ou escapadas corretamente são a maior fonte de ataques de injeção de código.
  3. Falha ao Preservar a Estrutura da Busca, SQL (conhecido como Injeção de SQL): Se os atacantes podem influenciar as procuras SQL do seu programa, então eles podem controlar o seu banco de dados.
  4. Falha ao Preservar a Estrutura do Código da Página (conhecido como "Cross-site Scripting"): Assim como o anterior, se os atacantes podem injetar código ou scripts em sua página, eles podem controlar a página.
  5. Falha ao Preservar a Estrutura de Comandos do Sistema Operacional: Se você permitir que entradas ilegais sejam passadas para aplicativos do sistema operacional, o atacante pode controlar o servidor.
  6. Transmissão de Dados Sensíveis em Texto Puro: Senhas, dados de cartão e qualquer informação considerada sensível deve ser criptografada.
  7. Falsificação de Requisição Entre Sites: Um atacante pode criar uma requisição que é enviada a outro site forjando a origem e fazendo o mesmo partir de um usuário inocente, aproveitando credenciais de autenticação e acessos.
  8. Condição de Corrida: Atacantes vão sempre procurar por condições de corrida no software para conferir se alguma informação importante não é obtida no processo.
  9. Vazamento de Informações em Mensagens de Erro: Atacantes vão procurar por mensagens de erro que descrevam mais que o necessário, como nomes de campos SQL, objetos e bibliotecas sendo utilizadas.
Categoria: Gerenciamento arriscado de recursos:
  1. Falha ao Limitar Operações aos Limites de um Buffer de Memória: O conhecido buffer overflow.
  2. Controle Externo de Dados Sensíveis: Informações críticas que são mantidas fora de um banco de dados por questões de performance não deviam ser facilmente acessíveis por atacantes.
  3. Controle Externo de de Caminho ou Nome de Arquivo: Quando você usa dados externos para montar um nome de arquivo ou caminho de gravação, você está se arriscando a ser atacado.
  4. Caminho de Procura Inseguro: Se o caminho de procura de recursos estiver em algum lugar sob controle de um atacante, bibliotecas ou código pode ser inserido a revelia.
  5. Falha ao Controlar a Geração de Código: Caso o atacante consiga influenciar a geração de código dinâmico (se geração de código dinâmico for utilizada no programa) ele poderá controlar todo seu código.
  6. Download de Código sem Verificação de Integridade: Se você executa código obtido por download, você confia na fonte. Atacantes podem aproveitar esta confiança.
  7. Desligamento ou Liberação Impróprias de Recursos: Arquivos, conexões e classes precisam ser corretamente encerradas.
  8. Inicialização Imprópria: Dados, bibliotecas e sistemas inicializados incorretamente podem abrir margens para problemas.
  9. Cálculos Incorretos: Quando o atacante tem algum controle sobre as entradas usadas em operações matemáticas, isso pode gerar vulnerabilidades.
Categoria: Defensas porosas:
  1. Controle de Acesso Impróprio: Se você não garante que seus usuários estão fazendo apenas o que deviam, os atacantes irão se aproveitar de sua autenticação.
  2. Uso de um Algoritmo Criptográfico Quebrado ou Vulnerável: Utilização de algoritmos fracos ou comprometidos levam a falhas de criptografia e vulnerabilidades.
  3. Senha no Código: deixar um usuário e uma senha no próprio código traz inúmeros problemas.
  4. Permissão de Acesso Insegura para Recurso Crítico: Configurações, arquivos de dados e bancos de dados devem ter suas permissões de acesso protegidas.
  5. Uso de Valores Insuficientemente Aleatórios: Se você usa tipos de segurança que dependem de aleatoriedade, usar um gerador aleatório insuficiente só vai causar problemas.
  6. Execução com Privilégios Desnecessários: Se seu programa precisa de privilégios elevados para executar suas funções, ele deve abrir mão destes direitos assim que ele termina de executar as ações que precisavam dos privilégios.
  7. Aplicação de Segurança do Lado do Servidor pelo Cliente: Atacantes podem usar engenharia reversa em um cliente de software e escrever seus próprios clientes removendo testes e aplicações de segurança.


underpop.co.cc: Segurança: os 25 erros de programação mais perigosos
Reblog this post [with Zemanta]

Marcadores: , , , , , , , , , , ,



# 8/07/2009 07:57:00 PM, Comentários, Links para esta postagem,