Tuesday, October 18, 2011 4:29:33 PM
XML, GeoTrace, javascript
Muitas vezes já tive ou tentei transformar o IP de alguém para encontrar onde ela está, encontrar mesmo, meridianos no mapa (
Velhos tempos onde usava o msn para hacker amigos). O melhor programa que já utilizei sem dúvidas foi o NeoTrace, porém ele é um
software de plataforma Windows.
Mas se eu quiser tornar essa "brincadeira" em algo lucrativo? Descobrir o local da pessoa que acessa o meu site para retorna conteúdo personalizado?
Aqui está a dica:
http://www.utrace.de, que ainda lhe oferece um API para buscar o IP desejado, simples assim:
Exemplo
@link http://xml.utrace.de/?query=IP
http://xml.utrace.de/?query=74.125.234.51
Substituimos o 'IP' pelo pelo ip desejado e temos o seguinte retorno em um arquivo XML
<?xml version="1.0" encoding="iso-8859-1"?>
<results>
<result>
<ip>74.125.234.51</ip>
<host></host>
<isp>Google</isp>
<org>Google</org>
<region>Mountain View</region>
<countrycode>US</countrycode>
<latitude>37.4192008972</latitude>
<longitude>-122.057403564</longitude>
<queries>11</queries>
</result>
</results>
Ai fica fácil, porque você pode integrar até com JavaScript, ou mesmo bisbilhotar pelo mapa do google sem conhecimento algum de programação, bastar copiar a latitude e longitude e colar no barra de pesquisa separado por virgula.
Fica ai a dica, de encontrar o local por um IP(
Internet Protocol), e algumas informaçõezinhas a mais.
Monday, October 17, 2011 4:44:23 PM
Vulnerabilidade, Segurança
Ter um site seguro, representa além de confiabilidade menos dor de cabeça
É certo de que você sempre acaba esquecendo algumas coisas para testar se o seu site estar pelo menos 99% seguro. Um dos maiores problemas são
SQL Inject,
PHP Inject dentre vários outros. Já encontrei sites com tal vulnerabilidade que chega a ser ridículo, roubo de dados, atualizações, disseminações de vírus, mas ta ai um forma de você poder ajudar você(R$), seja a solução para o problema dos seus clientes.
Mas você pode usar bem mais do que só o seu conhecimento para buscar vulnerabilidade em sites. Existem programas que ajudam você a "blindar" o seu site e um deles, muito reconhecido e eficiente, é o
Websercurify ScannerTa ai a dica, mas lembre-se sempre, busque o seu conhecimento, não dependa dos outros para sustentar e garantir seus argumentos, em outras palavras, conheça o suficiente para não depender do programa, pois ele pode ser mais falho que você.
Monday, October 10, 2011 1:00:01 PM
javascript
Simples código javascript para remove os caracteres especiais para enviar em URL. Por quê ?! para na não ser necessária a codificação dos caracteres enviado, e isso faz muito diferença quando se otimiza site em função do SEO
String.prototype.url_clean = function(limit){
var text;
text = this.replace(/\s{2,}/g,' ');
text = text.replace(/\s/gi,"-");
text = text.replace(/[!@#&\*\(\)\{\}\[\]?:;<>%$;^~´`'"]/gi,"");
text = text.replace(/[áàâã]/gi, 'a').replace(/[éèêê]/gi, 'e').replace(/[íìî]/gi, 'i').replace(/[óòôõ]/gi, 'o').replace(/[úùû]/gi, 'u').replace(/[ç]/gi, 'c');
return text.toLowerCase().substr(0,limit);
}
Como Usar
var url = "Transformando URL em variáveis";
document.write("<a href='http://my.opera.com/fsdev/blog/2011/09/29/"+url.url_clean(25)+"'>"+url.url_clean()+"</a>");
Thursday, September 29, 2011 2:24:27 PM
.htaccess, URL
Eu sempre me perguntei como eles conseguiam transforma o endereço de URL sem mostrar as "variáveis", por assim se dizer.
Ex.:
http://www.flaviosilva.com?menu=Contato para
http://www.flavosilva.com/m/contatoE eu já cheguei a pensar que era uma pasta criada, esse tempo eu tinha medo de mim. Pensei também que fosse na personalização de página de erro, apesar de ter como fazer com ela também, não é a melhor forma.
Mas aqui está a solução, simples, fácil e rápido. Tudo em um pequeno arquivo chamado ".htacess" você transforma seu site XD.
Vou dar exemplos abaixo de como seria feito:
.htaccess
#É necessário um leve conhecimento de expressão regular, você vai depender dela.
RewriteRule ^m/([0-9a-z]+)/?$ index.php?menu=$1 [NC,L]
# Ler assim: tudo que estive apos o m/(números e letras)/ finalizando na barra independentize do reque
# venha depois redirecione para index.php?php?menu=[i]resultado da primeira expressão([0-9a-Z]+)[/i]
Porem falta um parte, o que ser [NC,L], relaxa são flags que podem ser resumidos da seguinte forma:
- C (chained with next rule)
- CO=cookie (Definir um cookie)
- E=var:value (set environment variable var to value)
- F (forbidden - sends a 403 header to the user)
- G (gone - no longer exists)
- H=handler (set handler)
- L (last - stop processing rules)
- N (next - continue processing rules)
- NC (case insensitive)
- NE (do not escape special URL characters in output)
- NS (ignore this rule if the request is a subrequest)
- P (proxy - i.e., apache should grab the remote content specified in the substitution section and return it)
- PT (pass through - use when processing URLs with additional handlers, e.g., mod_alias)
- R (temporary redirect to new URL)
- R=301 (permanent redirect to new URL)
- QSA (append query string from request to substituted URL)
- S=x (skip next x rules)
- T=mime-type (force specified mime type)
Por que em inglês, tecnicamente é mais fácil de se entender =D
E chega a parte mais legal, executar essas ações somente sobre tal condição:.htaccess
# Condição para executar a próxima linha
RewriteCond %{HTTP_HOST} ^flaviosilva\.com [NC]
# Lendo: Se %{variável} for flaviosilva.com Redirecionar para http://www.flaviosilva.com/
# todos os paramentos
RewriteRule ^(.*)$ http://www.flaviosilva.com/$1 [NC,L]
Código especiais de Expressão
- < Pattern (is test string lower than pattern)
- > Pattern (is test string greater than pattern)
- = Pattern (is test string equal to pattern)
- -d (is test string a valid directory)
- -f (is test string a valid file)
- -s (is test string a valid file with size greater than zero)
- -l (is test string a symbolic link)
- -F (is test string a valid file, and accessible (via subrequest))
- -U (is test string a valid URL, and accessible (via subrequest))
Variáveis do servidor %{variável}
HTTP Headers
[LIST]- HTTP_USER_AGENT
- HTTP_REFERER
- HTTP_COOKIE
- HTTP_FORWARDED
- HTTP_HOST
- HTTP_PROXY_CONNECTION
- HTTP_ACCEPT
Connection Variables
- REMOTE_ADDR
- REMOTE_HOST
- REMOTE_USER
- REMOTE_IDENT
- REQUEST_METHOD
- SCRIPT_FILENAME
- PATH_INFO
- QUERY_STRING
- AUTH_TYPE
Server Variables
- DOCUMENT_ROOT
- SERVER_ADMIN
- SERVER_NAME
- SERVER_ADDR
- SERVER_PORT
- SERVER_PROTOCOL
- SERVER_SOFTWARE
Dates and Times
- TIME_YEAR
- TIME_MON
- TIME_DAY
- TIME_HOUR
- TIME_MIN
- TIME_SEC
- TIME_WDAY
- TIME
Special Items
- API_VERSION
- THE_REQUEST
- REQUEST_URI
- REQUEST_FILENAME
- IS_SUBREQ
[/LIST]
Thursday, September 29, 2011 12:59:01 PM
.htaccess, SQL
Como eu sempre esqueço essas dicas aqui vale pra mim também XD
no fabuloso arquivo .htaccess, é possível fazer maravilhas e uma delas é proteger seu site de ataques de INNERSQL(um forma de burlar, senhas, formulários utilizando a linguagem SQL).
Sempre, independente de qualquer coisa tenha sempre essa linha de comando eu seu arquivo.
php_flag magic_quotes_gpc on
Para deixar um pouco mais personalizado, configure sempre páginas de erro, permissões dentre outras.
# Redirecionar caso não exista o arquivo espeficifado.
Redirect 404 / http://seusite.com/
Os códigos acima deve estar no arquivo ".htaccess" no seu servidor
Thursday, August 11, 2011 12:19:30 PM
CSS3, javascript
Com o avanço de browser e tecnologia, ficou bem mais fácil fazer animação na
web. E ai tem um exemplo simples de como criar um alerta igual a janelinha do msn.
O Arquivo pode ser feito o download de acordo com o link abaixo, ou simplesmente igual a tag logo a seguir.
<script src="http://files.myopera.com/fsdev/sources/alerta.js"></script>
Já pra executar o alerta fica assim:
<script>
// new Alerta(String mensagem, String titulo).create();
new Alerta("Alerta utilizando CSS3, disponível nos browser: Opera, Safari, Chrome, Mozilla Firefox").create();
</script>
Exemplo:
Caixa de Alerta Animada
Tuesday, July 5, 2011 5:56:52 PM
Android, Imagem
public Drawable getImageURL(String url) {
Drawable image;
URL imageUrl;
try {
imageUrl = new URL("http://"+url);
Bitmap bitmap = BitmapFactory.decodeStream(imageUrl.openStream());
image = new BitmapDrawable(bitmap);
} catch (Exception e) {
//Log.e(DEBUG_TAG, "Decoding Bitmap stream failed.");
image = null;
}
return image;
}
Tuesday, June 21, 2011 10:54:24 AM
SQL
Essa eu apanhei um pouquinho quando tava fazendo minhas consultas SQL, mas achei a forma correta \o, o que me surpreendeu é que é simples.
SELECT
*
FROM
`nome_tabela`
ORDER BY FIELD(`nome_do_campo`, 'valor1','valor2','...')
Os campos com o valor não registrado dentro da função "FIELD" virá antes dos ordenados
Friday, June 17, 2011 3:01:55 PM
Transformando Milisegundos em Horas, Milisegundos, PHP, Segundos
...
Como eu sempre esqueço, melhor salvar logo essa função. Transformando milissegundos em Horas.
function tempo($time_to_convert){
$elapsed_hours = floor($time_to_convert / 3600000);
$remaining = $time_to_convert - $elapsed_hours * 3600000;
$elapsed_minutes = floor($remaining / 60000);
$remaining = $remaining - $elapsed_minutes * 60000;
$elapsed_seconds = floor($remaining / 1000);
$remaining = $remaining - $elapsed_seconds * 1000;
$elapsed_fs = floor($remaining / 10);
$hours = ($elapsed_hours < 10) ? "0$elapsed_hours" : $elapsed_hours;
$minutes = ($elapsed_minutes < 10) ? "0$elapsed_minutes" : $elapsed_minutes;
$seconds = ($elapsed_seconds < 10) ? "0$elapsed_seconds" : $elapsed_seconds;
$hundredths = ($elapsed_fs < 10) ? "0$elapsed_fs" : $elapsed_fs;
return "$hours:$minutes:$seconds:$hundredths";
}
Thursday, May 12, 2011 12:37:02 PM
javascript
Sempre que estou usando o JavaScript necessito das seguintes funções:
- Remover uma variável do Array
//Remove o elemento de acordo com a sua posição
Array.prototype.remove = function(f, t) {
var rest = this.slice((t || f) + 1 || this.length);
this.length = f< 0 ? this.length + f: f;
return this.push.apply(this, rest);
};
//Exemplo
var meuArray = new Array("www.","flaviosilva",".",".net");
meuArray.remove(2);
for(i in meuArray)
if(typeof meuArray[i] != 'function') //Responsável por não imprimir a função prototype(remove)
document.write(meuArray[i]);
- Verificar se uma variável já existe em um Array
//Verifica se uma variável está no array
Array.prototype.inArray = function(e){
for(i in this)
if(this[i]==e)
return true;
return false
}
//Exemplo
var meuArray = new Array("www.","flaviosilva",".",".net");
if(meuArray.inArray("flaviosilva")){
document.writeln("Essa função foi retirada do blog: my.opera.com/fsdev");
}else{
document.writeln("Acesse também o site: www.flaviosilva.net");
}